智能指针如何知道何时释放程序崩溃时的资源



c++项目如何使用像unique_ptr这样的智能指针来释放程序崩溃时的资源?

如果程序由于处理异常而"优雅地"崩溃,堆栈展开将调用智能指针上的析构函数并释放内存。

对于完全崩溃(例如分段错误,调用std::terminate()),它是操作系统将释放由程序持有的任何内存和资源。

当c++程序崩溃时,它退出。操作系统清理它可能请求的任何操作系统资源,包括内存,但也包括其他资源(例如文件句柄)。

因此,c++不会进行清理——是操作系统在做。曾经的c++堆作为自由内存返回给操作系统。

相关内容

最新更新