向malloc分配的内存中存储数据问题
我用malloc分配了一段内存,现在要将收到的数据先存在这个内存中(一批一批的),用什么函数存储啊?我一开始用的是strcat,有错误,说指令所指的内存不能为written,请问这个怎么写啊?
[解决办法]
buf[];
char *p;
p = buf;
while()
{
strcpy(p,data);
p += strlen(data);
}
[解决办法]
我用malloc分配了一段内存,现在要将收到的数据先存在这个内存中(一批一批的),用什么函数存储啊?我一开始用的是strcat,有错误,说指令所指的内存不能为written,请问这个怎么写啊?
strcat函数??
字符串是以0(不是字符‘0’)作为结束符的,strcat是在这个0的位置往后加字符串的。
malloc分配的内存中的数据的值是随机的,可能有0,可能没有0,strcat函数会先遍历这个空间的数据,由于一直没有找到结束符0 ,不知不觉就超出这个空间的范围了,跑到别的内存空间去找了,这就产生了“指令所指的内存不能为written”这个错误。