Shr*_*yas -3 c++ new-operator delete-operator
下面的代码编译正常,但不执行
#include <iostream>
using namespace std;
int main()
{
int *a;
int b = 5;
a = &b;
cout << *a << endl;
delete a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
int main()
{
int *a = 0;
delete a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这很好用.为什么会这样?
在编辑之后,您只有一个未定义行为的情况:
delete您没有获取的内存new.
delete在NULL指针上保证不会造成伤害.但是delete在内存上你没有分配或删除之前未定义.我知道的实现会以某种访问冲突的方式退出程序.
| 归档时间: |
|
| 查看次数: |
2474 次 |
| 最近记录: |