假设我有以下 C 代码:
int main () {
int *p = malloc(10 * sizeof *p);
*p = 42;
return 0; //Exiting without freeing the allocated memory
}
当我编译并执行该C程序时,即在内存中分配一些空间后,在我退出应用程序并且进程终止后,我分配的内存是否仍然被分配(即基本上占用空间)?
这取决于操作系统。大多数现代(以及所有主要)操作系统将在程序结束时释放程序未释放的内存。
依赖它是不好的做法,最好明确地释放它。问题不仅仅是你的代码看起来很糟糕。您可能决定将您的小程序集成到一个更大的、长期运行的程序中。过了一段时间,您必须花费数小时来追踪内存泄漏。
依赖操作系统的功能也会降低代码的可移植性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)