使用堆在堆栈中设置值

Using heap to set value in stack

本文关键字:设置 堆栈      更新时间:2023-10-16

可能的重复项:
为什么使用"new"会导致内存泄漏?

我想知道是否,

Foo bar = *(new Foo());

可以做,还是我在浪费内存,因为在将值分配给bar后我无法从堆中删除数据。

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

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

这与您所期望的有所不同:

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

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

所以这种方法什么也没给你..也许你需要那里的智能指针?