我知道我没有这里的所有代码,但是这里有大量代码在我运行客户端时抛出错误。基本上,它不喜欢我的
delete[] oldList;
我不太清楚为什么。这是代码块,请提前感谢您的任何意见。问我是否需要更多来自我,我只想弄清楚我是否使用指针错误。谢谢!
void OrdListClass::Expand()
{
int tempLength = 0;
ItemType* oldList = GetListPtr();
ItemType* newList;
SetSize(EXPANSION_FACTOR * GetSize());
newList = new ItemType[GetSize()];
SetListPtr(newList);
for (int i = 0; i < GetLength(); i++)
{
newList[i] = oldList[i];
tempLength = tempLength++;
}
SetLength(tempLength);
delete[] oldList;
oldList = NULL;
} // end Expand
编辑1: 如果在没有调试的情况下运行,则仅显示错误。如果我调试,它永远不会让我休息。它发生在“delete [] oldList;”的行上如果我在没有调试的情况下运行时问它在哪里坏了。 我意识到我可以在最后设定长度,我并不担心这么多。我很好奇为什么程序会在我尝试删除指针时中断。谢谢!
编辑2: 看来我是个假人,在VS13中调试错了。当我尝试插入到我的列表中时,如果存在重复键,则会抛出异常(DuplicateInsertException())。我抛出的异常应该停止我的程序吗?