gpt4 book ai didi

c++ - 动态字符串数组容器类在 delete[] 运行时挂起

转载 作者:行者123 更新时间:2023-11-27 23:15:42 25 4
gpt4 key购买 nike

我正在处理一项任务,为动态字符串数组创建容器类。我知道使用 std::vector 会更好,但这不是赋值的“指针”。

据我所知,我的程序在下面的 delete [] lineArray 步骤中挂起。

MyBag::MyBag()
{
nLines = 0;
lineArray = new std::string[0] ();
}
void MyBag::ResizeArray(int newLength)
{
std::string *newArray = new std::string[newLength];
//create new array with new length
for (int nIndex=0; nIndex < nLines; nIndex++)
{
newArray[nIndex] = lineArray[nIndex];
//copy the old array into the new array
}
delete[] lineArray; //delete the old array
lineArray = newArray; //point the old array to the new array
nLines = newLength; //set new array size
}
void MyBag::add(std::string line)
{
ResizeArray(nLines+1); //add one to the array size
lineArray[nLines] = line; //add the new line to the now extended array
nLines++;
}

整个程序在这里http://pastebin.com/KnL4XmAw

最佳答案

ResizeArray(nLines+1); //add one to the array size
lineArray[nLines] = line; //add the new line to the now extended array
nLines++;

ResizeArray 的调用已经调整了 nLines 的值。最后一行中的增量是错误的,在倒数第二行中使用 lineArray[nLines] 也是错误的。

关于c++ - 动态字符串数组容器类在 delete[] 运行时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16528403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com