使用堆来设置堆栈中的值

时间:2012-09-18 05:31:46

标签: c++ class variables pointers stack

  

可能重复:
  Why does the use of 'new' cause memory leaks?

我想知道是否,

Foo bar = *(new Foo());

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

2 个答案:

答案 0 :(得分:1)

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

我不得不问,当你只需要调用堆栈上的构造函数时,你为什么要为自己添加工作。

答案 1 :(得分:1)

这与您的预期不同:

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

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

  3. 所以这种方法什么也没给你..也许你需要smart pointer吗?