1. 进程退出时,操作系统会回收该进程所占用的所有资源。所以不需要担心内存泄漏。(这点是可以理解的,因为用户程序,难免有bug,假如进程退出不回收内存,那操作系统不是很容易挂掉吗?这是不能容忍的)
2. exit()函数的也并不是完全不调用析构函数。参考ISO C++ 2003标准:
static对象是会被析构的,auto对象不会析构。
内存是否泄漏要分情况:
1. 调用exit结束进程后,进程自身占用的存储空间(进程自身页表引用到的内存)会被释放,这一部分内存不会泄漏。
2. 有些程序会使用一些外部的资源,比如Linux下程序通过内核模块在内核中申请了内存,Windows下使用Direct3D接口,接口内部申请了内存,这些内存如果不主动释放,是会造成泄漏的。
摘录自知乎: