(C++) 堆上没有任何指针的对象会发生什么情况?
(c++) what happens to objects on the heap that don't have any pointers to them?
它们会成为内存泄漏还是c++意识到它们没有指针指向它们并释放内存?如果它们必须被删除,我只需使用delete命令,对吗?
c++意识到它们没有指针指向它们并释放内存吗?
c++没有"实现"任何这样的事情。没有内置垃圾回收器
如果您使用new
分配内存,而不通过对delete
的相应调用来释放内存,则会发生内存泄漏。
Cody是正确的,c++没有垃圾收集器,所以当指向对象的指针丢失时,您将有内存泄漏。
c++在std库中确实有一些东西来解决这个问题。如果该对象不再有任何std::shared_ptr
指向它,则std::shared_ptr
将自动删除该对象。
相关文章:
- c++, 在子类中,如何在没有对象的情况下访问父类的方法?
- 在不复制临时对象的情况下延长其生存期
- 将指针分配给另一个指针时会发生什么情况?
- 如何在不销毁对象的情况下返回对象列表
- 在什么情况下,两个堆栈分配的结构对象的 this 点指向同一个地址?
- 在什么情况下,我想在 C/C++ 代码中使用内联汇编代码
- 发生注入类名时会发生什么情况?(C++)
- 删除对象(具有不同类型)的引用时会发生什么情况?
- 属于副本被推送到矢量的对象的指针会发生什么情况?
- 如果将变量设置为等于新对象,旧对象会发生什么情况?
- 堆栈对象"lost"会发生什么情况?
- 使用另一个(现有)对象创建新对象时会发生什么情况?
- 未分配返回未定义对象类型引用的 C++ 函数的返回值时会发生什么情况
- 将类对象用作数组的索引时会发生什么情况
- 当C++匿名对象替换以前分配的对象时会发生什么情况
- 当按引用传递参数存储在被调用方对象中,然后被调用方删除时会发生什么情况
- (C++) 堆上没有任何指针的对象会发生什么情况?
- C++:在不删除指向的对象的情况下,从对象指针向量中删除元素的正确方法是什么
- 应用 std::move 后对象实例会发生什么情况
- 如果使用"new"实例化对象而不将其分配给变量,会发生什么情况?