[英]what happens to malloc?
嗯,我想我知道这个问题的答案,但我相当放心。 如果您在堆上使用malloc内存并在释放空间之前退出程序,那么os或编译器是否为您释放空间?
这超出了C标准的范围。 发生什么取决于系统。 在所有常见的主流操作系统中,操作系统将在完成该过程时释放内存。
尽管如此,总是清理自己的烂摊子是一种好习惯。 因此,无论操作系统做什么,您都应该释放所有正在使用的资源。 这样做也是发现隐藏的运行时错误的绝佳方法:如果您有错误,当您尝试释放资源并因此向程序员警告错误时,程序可能会崩溃。
对于编译器,它仅在程序创建期间处于活动状态,它与程序的运行时执行完全无关。
操作系统将清除程序消耗的所有资源,包括所有已分配的内存,网络连接,文件句柄等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.