当包含动态分配内存(使用 malloc/new)而没有 free/delete 调用的 C/C++ 程序终止时,动态分配的内存会发生什么?
操作系统是否收回内存,或者其他程序是否无法访问该内存?
我不认为语言标准有任何保证,但是支持稀疏虚拟内存和内存保护的现代操作系统(例如MacOS X,Linux,所有最新版本的Windows以及所有当前制造的手机)会自动清理在行为不当的进程(当它们终止时)之后启动并为您释放内存。然而,只要程序正在运行,内存就保持不可用。
如果您在微控制器、MacOS 9 或更早版本、DOS 或 Windows 3.x 上进行编程,那么您可能需要担心内存泄漏,从而导致整个操作系统永久无法使用内存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)