当我尝试连接两个字符串时出现段错误,如下面的代码所示:
已编辑
//global variables
char *result="hi";
char *temp;
size_t write_data(char *ptr, size_t size, size_t nmeb, void *stream)
{
temp=(char *)ptr;
while(*result)++result;
while(*result++ = *temp++);
return fwrite(ptr,size,nmeb,stream);
}
我在这里做错了什么?
谢谢
最佳答案
您正在将值存储到 result
指向的地址中,而没有初始化 result
以指向可用于存储结果的足够内存。通过将结果初始化为“Hi”,您已经为其分配了三个字节。这不足以保存您试图在末尾附加的额外数据。
关于连接两个字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7975411/