由于删除指针,C ++程序的断言失败

时间:2014-07-12 05:37:16

标签: c++ memory-management

我创建了一个int变量。

然后我将它分配给指针。

之后,我对它进行了测试,然后最终删除了。

会发生什么?控制台弹出,但随后立即出现错误对话框,并显示错误Assertion Failure。任何人都可以解释我收到错误的原因吗?这是代码:

int main()
{
    int mainNum = 10;
    int *numPt;
    numPt = &mainNum;

    cout << &numPt; 

    delete(numPt);

    cout << endl << endl << endl; // this is to secure last newline char to be outputted.
    cout << "---------------------------" << endl;
    return 0;
}

1 个答案:

答案 0 :(得分:1)

您无法删除堆叠中的内容。您只能删除堆上的内容(由new创建)。否则会发生各种各样的事情