我对c++中的内存分配和释放有这个问题。
情况如下:
我有一个方法foo,它分配内存,然后返回该对象:
Object foo () {
Object *a = new Object();
// Do something with this object...
return *a;
}
以及另一个使用此返回对象的方法:
void bar () {
Object a = foo();
// Do something..
}
我的问题是,我应该在何时分配已分配的内存?当我从foo方法返回时,方法栏会在其堆栈上获取该对象的副本,还是会访问内存中某个对象?
谢谢!
巴特
最佳答案
您不能取消分配该对象。迷路了这是内存泄漏。首先,您永远不应该(动态地)分配它。您的代码应该看起来像这样:
Object foo () {
Object a;
// Do something with this object...
return a;
}
它是仍然存在的不可访问对象的副本。