我正尝试通过以下方法使用strcpy
连接字符串:
char * concat(char ** buffer) {
char * joined_string = malloc(50);
int offset=0;
while (*buffer) {
strcpy(joined_string+offset, *buffer++); // seg fault, how to advance offset?
offset += strlen(*buffer);
}
return joined_string;
}
是否有一种方法可以通过偏移量继续前进以继续写入字符串缓冲区?如果是这样,那该怎么办?
答案 0 :(得分:3)
主要错误在于,您将offset
中的 next 字符串的长度推进buffer
,而不是刚刚追加的长度。