malloc会发生什么?
发布时间:2020-12-16 09:51:20 所属栏目:百科 来源:网络整理
导读:嗯,我想我知道这个问题的答案,但我相当放心.如果您在堆上使用malloc内存并在释放空间之前退出程序,那么os或编译器是否为您释放空间? 解决方法 当操作系统从进程列表中删除进程的描述符( Linux的情况下为task_struct)时,操作系统会为您释放空间. 编译器通常
嗯,我想我知道这个问题的答案,但我相当放心.如果您在堆上使用malloc内存并在释放空间之前退出程序,那么os或编译器是否为您释放空间?
解决方法
当操作系统从进程列表中删除进程的描述符(
Linux的情况下为task_struct)时,操作系统会为您释放空间.
编译器通常会生成一个 在Linux上,基本上所有这些都发生在内核的exit_mm()函数中,最终由exit()调用.它将使用mm_release()函数释放进程拥有的地址空间.所有这些来源都可供您阅读(虽然它可能会有点复杂:)但是,操作系统负责释放进程的资源. 只是因为我非常喜欢它,如果你喜欢这些主题,这是一个非常好的阅读:Understanding the Linux Kernel. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |