C ++扩展动态数组并删除指针

时间:2014-10-28 05:34:22

标签: c++ arrays pointers dynamic delete-operator

我知道我没有这里的所有代码,但是这里有大量代码在我运行客户端时抛出错误。基本上,它不喜欢我的

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())。我抛出的异常应该停止我的程序吗?

0 个答案:

没有答案