Sri*_*nth 1 c++ delete-operator
我有下面的代码崩溃.
aClass *ptr_obj = new aClass[5];
delete ptr_obj;
Run Code Online (Sandbox Code Playgroud)
我知道,ptr_obj将使用delete []删除,但我的问题是,当我使用delete时它崩溃的原因.我以为它会将析构函数称为第一个对象而不是崩溃.请帮忙.
new[] 必须删除分配的数组delete[],否则它是未定义的行为.
将您的代码更改为
delete[] ptr_obj;
// ^^
Run Code Online (Sandbox Code Playgroud)
"但我的问题是,当我使用删除时它崩溃的原因."
因为如果不这样做,则调用未定义的行为.
"我以为它会将析构函数称为第一个对象,而不是崩溃."
它没有.
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |