0

可能重复:
为什么使用“新”会导致内存泄漏?

我想知道是否,

Foo bar = *(new Foo());

可以这样做,还是我在浪费内存,因为在将值分配给bar.

4

2 回答 2

1

这是一个即时内存泄漏,因为您在堆上丢失了对它的引用。

不过我不得不问,当您可以简单地调用堆栈上的构造函数时,为什么要为自己添加工作。

于 2012-09-18T05:32:51.757 回答
1

这与您预期的不同:

  1. 您在永远不会被破坏的堆上创建临时=内存泄漏

  2. 然后,您在堆栈上创建临时对象的 COPY。

所以这种方法没有给你任何东西..也许你需要智能指针

于 2012-09-18T05:34:38.523 回答