我对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;
}



它是仍然存在的不可访问对象的副本。

07-28 02:14
查看更多