c++ - 什么时候释放内存?

标签 c++ memory pointers

我已经创建了一个代码块,就像这样。

proc()
{
    Z* z = new Z();
}

现在在方法 proc 中声明的指针将只在 proc 之前具有作用域。我想问一下 z 的 DTOR 什么时候会被自动调用。无论是控件从方法 proc 中出来还是我的应用程序关闭时。

最佳答案

根本不会调用析构函数。*z使用的内存会被泄露,直到应用程序关闭(此时操作系统将回收所有您的进程使用的内存)。

为避免泄漏,您必须在某个时候调用 delete,或者更好的是,使用智能指针。

关于c++ - 什么时候释放内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646566/

相关文章:

c++ - 在 C++ 中添加自定义字体并在 QML 中按其姓氏调用它们

c++ - Reader Writer Lock 支持低优先级的写者

java - 如何从 Java 获取空闲内存信息

android - 在 Android 上终止 Activity 不会清除内存?

c++ - 有人可以帮助我解决有关 C 中动态结构数组的编码问题吗?

c++ - C++中常量数组的初始化

c++ - 为什么我的 glutWireCube 没有放在原点?

c# - 在C#中分配一 block 内存?

c++ - 窄字符类型数组中的序列

c++如何创建一个使用它自己类型的变量的类