【发布时间】:2013-04-25 12:46:46
【问题描述】:
void F(A* a)
{
delete a;
};
F(new A());
delete 操作符会释放分配的内存还是我必须像这样创建和删除对象:
F(A* a) {}
A a = new A();
F(a);
delete a;
【问题讨论】:
-
您的第二个版本会导致双重删除。
-
@KerrekSB“白痴”有点远。他问了一个简单而有效的问题。
-
@Named:我一直为了好玩而编写愚蠢的代码。我只是小心不要将其检入生产系统:-)
-
是的,我知道第二个版本会导致双重删除,但是当我发布问题时,我认为 F() 是一个不同的函数,其中没有删除,这是我的错误。我解决了我的问题。
-
这不会导致递归
标签: c++ arguments new-operator operator-keyword