使用堆在堆栈中设置值
Using heap to set value in stack
可能的重复项:
为什么使用"new"会导致内存泄漏?
我想知道是否,
Foo bar = *(new Foo());
可以做,还是我在浪费内存,因为在将值分配给bar
后我无法从堆中删除数据。
这是一个即时内存泄漏,因为您在堆上丢失了对它的引用。
不过,我不得不问,当您可以简单地在堆栈上调用构造函数时,为什么要为自己添加工作。
这与您所期望的有所不同:
-
您在永远不会销毁的堆上创建临时 = 内存泄漏
-
然后,在堆栈上创建临时对象的 COPY。
所以这种方法什么也没给你..也许你需要那里的智能指针?
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 在C++/Linux中设置单调时钟的一些技巧
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 嵌套在类中时无法设置成员数据
- 需要帮助设置在C++中使用的Potrace
- 如何在自删除后将对象设置为nullptr
- 将指针设置为"nullptr"并不能防止双重删除?
- 如何在Ubuntu中使用cmake设置qt4
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 如何在boost beast http请求中设置http头
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- Haskell堆栈设置 - 无法识别CPP程序
- 在 Windows 上以编程方式设置堆栈大小
- 如何在窗口上设置使用 CreateProcess 创建的新进程的主线程的堆栈大小?
- C++设置堆栈指针
- 用GCC 4.6.2 C QT设置堆栈大小,Mingw,Vista
- 使用堆在堆栈中设置值
- 将没有成员的函子设置为类成员对象还是堆栈对象更有效
- 如何设置Qt使用blueZ蓝牙堆栈
- 某个程序的堆栈内存有多大,是否有任何编译器标志可以设置它