Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 删除同一对象两次_C++_Object_Delete Operator - Fatal编程技术网

C++ 删除同一对象两次

C++ 删除同一对象两次,c++,object,delete-operator,C++,Object,Delete Operator,可能重复: 我知道对同一个对象调用delete是灾难性的。但是,只要在第二次调用delete之前没有为其他对象重新分配内存,这是正确的。但是,即使做下面的事情也是错误的?如果我删除cout,代码就不会转储核心 int main() { A *a1 = new A(); delete a1; cout<<a1<<endl; delete a1; } intmain() { A*a1=新的A(); 删除a1; 参见: 是的,这是非常错误的

可能重复:

我知道对同一个对象调用delete是灾难性的。但是,只要在第二次调用delete之前没有为其他对象重新分配内存,这是正确的。但是,即使做下面的事情也是错误的?如果我删除cout,代码就不会转储核心

int main()
{
    A *a1 = new A();
    delete a1;
    cout<<a1<<endl;
    delete a1;
}
intmain()
{
A*a1=新的A();
删除a1;
参见:

是的,这是非常错误的

最大的问题是行为是未定义的。因此,在一种情况下,在一个编译器上,您可能会侥幸逃脱,但通常它会导致崩溃。

请参阅:

是的,这是非常错误的


最大的问题是行为是未定义的。因此,在一个编译器上的一种情况下,您可能会侥幸逃脱,但通常它会导致崩溃。

请澄清您的问题这是未定义的行为。它可能会工作,也可能会中断。请记住,未定义行为的许多可能结果之一是“似乎工作正常”。然后问自己是否想要依赖它。请你澄清你在问什么这是未定义的行为。它可能会工作,也可能会中断。记住,未定义行为的许多可能结果之一是“似乎工作正常”。然后问自己是否想要依赖它。