Segfaults和内存泄漏

Mil*_*cht 2 c c++ memory-management

我的问题有两个部分:

  • 是否有可能,如果在分配内存之后但在释放它之前发生了段错误,这会泄漏内存(也就是说,内存永远不会被释放导致内存泄漏)?
  • 如果是这样,有没有办法确保在发生段错误时清理已分配的内存?

我一直在阅读有关C++内存管理的内容,但无法找到有关我特定问题的任何内容.

jlu*_*rad 5

如果出现seg故障,操作系统负责清理程序保存的所有资源.

编辑:

无论程序如何终止,现代操作系统都会清理任何泄漏的内存.内存只会在程序的生命周期中泄漏.大多数操作系统还会清理许多其他类型的资源,例如打开文件和套接字连接.

  • 即使应用程序捕获了段错误.应用程序关闭时,操作系统将清理内存.或者它应该清理它. (2认同)