一般规则,只有在空闲存储中分配的对象才会导致内存泄漏。但是在堆栈中创建的对象没有。
这是我的疑问,
int main()
{
myclass x;
...
throw;
...
}
如果 throw 没有被处理,它会调用 terminate(),然后调用 abort() 并使应用程序崩溃。此时,堆栈中的对象没有被销毁(没有调用析构函数)。
我的理解是“当应用程序终止时(通过中止或正常退出),它会释放为应用程序分配的所有内存”。因此这不能被视为内存泄漏。
我对么?