我正在寻找一个示例代码或如何改进下面的代码(它是非常慢的IMO,但我可以写),以最快的方式将2D数组转换为char*
并将char
复制到它。
char* join(int c, size_t arrsize, const char* arr[]) { char *buf, *tbuf, *val; size_t i, vsize, total; buf = malloc(1); for(i = total = 0; i < arrsize; ++i) { val = arr[i]; vsize = strlen(val); if((tbuf = realloc(buf, total + vsize + 2)) == NULL) { if(buf != NULL) free(buf); return NULL; } buf = tbuf; memcpy(buf + total, val, vsize); total += vsize; buf[total] = c; total += 1; } buf[total] = '