当C++程序终止时,运行期间使用的内存将被清理并返回到系统,对吗?
问题1)返回的内存是由C++语言功能管理的还是由计算机硬件本身管理的?
问题2)如果我在Unix终端中使用ctrl+Z终止一次运行,内存是否会得到有效/安全的返回?
发布于 2011-09-24 01:16:36
发布于 2011-09-24 01:15:36
Q:当C++程序终止时,运行期间使用的内存将被清理并返回系统,对吗?
答:正确。对于任何程序都是如此,无论它是用哪种语言编写的,也不管它是Linux、Windows还是其他操作系统
Q返回的内存是由C++语言功能管理的,还是由计算机硬件本身管理的?
答:都不是:操作系统负责管理进程的内存。
问:如果我在Unix终端中使用ctrl+Z终止一次运行,内存是否会得到有效/安全的返回?
答:释放操作系统资源(如内存)。但是,如果你粗鲁地杀死了一个程序,你可能会留下文件被破坏,IPC被锁定,以及操作系统无法控制的其他坏事。
“希望这能有所帮助。
发布于 2011-09-24 01:14:53
返回的内存是由C++语言功能管理的还是由计算机硬件本身管理的?
这两种情况都会发生,前提是适当的关闭(vs.崩溃或终止)。标准C/C++库释放它通过操作系统系统调用分配的任何(非泄漏的)内存,并最终由操作系统清理所有泄漏的内存。
如果我在
终端中使用ctrl+Z终止一次运行,内存是否会得到有效/安全的返回?
Ctrl-Z可挂起Unix上的进程。如果您使用kill或kill -9终止它,则操作系统将(安全/有效地)回收内存。
https://stackoverflow.com/questions/7532529
复制相似问题