4sh*_*1sh 9 c c++ memory-management
给出以下代码:
#include <stdio.h>
int main()
{
int *p;
p = (int *)malloc(10 * sizeof(int));
while(1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当上面的代码被编译和运行,并且在执行时被按下时被中断Ctrl+C,如何分配p释放的内存?这里的操作系统有什么作用?它与使用new运算符的C++的情况有何不同?
Set*_*gie 13
当进程终止时,操作系统将回收进程正在使用的所有内存.
即使操作系统收回应用程序在终止时使用的内存,人们也会因为内存泄漏而造成大量内存泄漏的原因是,通常非平凡的应用程序会长时间运行,慢慢吞噬系统上的所有内存.对于寿命很短的程序来说,这不是一个问题.(但你永远无法分辨一个单行程何时会成为一个巨大的程序,所以即使在小程序中也不会有任何内存泄漏.)