【发布时间】:2020-10-04 21:05:13
【问题描述】:
所以我试图重新增长这个一维动态数组,但我无法修复这个错误: 写入“new_arr”时缓冲区溢出:可写入大小为“newLength*1”字节,但可能写入 2 个字节
void regrow(char *&arr, int &length,int newLength) //Funcion to regrow an array
{
char* new_arr = new char[newLength];
for (int index = 0; index < length; index++)
{
new_arr[index] = arr[index]; //**Error occurs here**
}
length = newLength;
delete[] arr;
arr = new_arr;
}
【问题讨论】:
-
std::vector类已经为您完成了这项工作。 -
length和newLength的值是多少? -
看起来
newLength小于length。 -
是的,现在问题已经解决了。顺便说一句,我不允许为此使用向量。不过还是谢谢大家。
标签: c++ arrays memory dynamic memory-leaks