C++程序的断言失败,因为删除指针



我创建了一个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;
}

不能删除堆栈上的内容。您只能删除堆上的东西(由new创建)。否则会发生各种各样的事情

相关内容

最新更新