【发布时间】:2013-04-10 09:10:14
【问题描述】:
我在这方面已经有一段时间了,但我似乎没有弄清楚。
我有这个代码:
unsigned char *src;
int length = (parameterArray[i].sizeInBits/8) + 1; // check how long array should be
unsigned char tmp[length]; // declare array
memcpy(tmp, (char*)¶meterArray[i].valueU8, length); // in this case copy char to array
src = realloc(src, strlen(src) + strlen(tmp)); // reallocate space for total string
strncat(src, tmp, strlen(tmp)); // merge
每次代码在重新分配部分崩溃。
我几乎尝试了所有方法,但没有任何效果。请帮忙
【问题讨论】:
-
你没有说你的问题是什么,但请注意你应该在
realloc的大小上添加 1 作为空终止符。如果parameterArray[i].valueU8不能保证为空终止,您也会遇到问题。 -
什么不起作用?
parameterArray是如何定义的? -
抱歉我编辑了我的问题
-
在调用
realloc()之前显示src的定义和任何使用。 -
我只声明过,unsigned char *src;
标签: c arrays pointers copy char