我已经创建了一个代码块,就像这样。
proc()
{
Z* z = new Z();
}
现在在方法 proc 中声明的指针将只在 proc 之前具有作用域。我想问一下 z 的 DTOR 什么时候会被自动调用。无论是控件从方法 proc 中出来还是我的应用程序关闭时。
最佳答案
根本不会调用析构函数。*z
使用的内存会被泄露,直到应用程序关闭(此时操作系统将回收所有您的进程使用的内存)。
为避免泄漏,您必须在某个时候调用 delete
,或者更好的是,使用智能指针。
关于c++ - 什么时候释放内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646566/