【发布时间】:2012-06-26 17:51:35
【问题描述】:
可能重复:
Undefined, unspecified and implementation-defined behavior
我知道对同一个对象调用 delete 是灾难性的。但只要在第二次调用 delete 之前没有为其他对象重新分配内存,情况就是如此。但是,即使执行以下操作也是错误的?如果我删除 cout,代码不会转储核心。
int main()
{
A *a1 = new A();
delete a1;
cout<<a1<<endl;
delete a1;
}
【问题讨论】:
-
你能澄清一下你在问什么
-
这是未定义的行为。它可能会起作用,也可能会损坏。
-
请记住,未定义行为的许多可能结果之一是“似乎可以正常工作”。然后问问自己你是否想依赖它。
标签: c++ object delete-operator