嗨,我的问题有点难以解释,所以我将在这里发布我的代码部分并用一个示例来解释问题。
这里的代码有一个大数组和一个小数组,其中大数组被分成小部分,存储在小数组中,小数组在屏幕上输出其内容。
之后我释放小数组的分配内存并使用大数组的下一部分再次初始化它:
//this code is in a loop that runs until all of the big array has been copied
char* splitArray = new char[50];
strncpy(splitArray, bigArray+startPoint, 50); //startPoint is calculated with every loop run, it marks the next point in the array for copying
//output of splitArray on the screen here
delete splitArray;
//repeat loop here
现在我的问题是输出的字符串每次都有一些随机符号。例如"some_characters_here...last_char_hereRANDOM_CHARS_HERE".
在深入研究之后,我发现 splitArray 实际上的大小不是 50,而是 64,空终止符为 64。所以当我从 bigArray 复制到 splitArray 时,在真正的字符串之后仍然有 14 个随机字符和当然我不想输出它们。
一个简单的解决方案是手动将 splitArray 中的空终止符设置为 [50],但随后程序无法再次删除该数组。
有人可以帮我找到解决方案吗?最好有一些示例代码,谢谢。