我们知道程序在运行的过程中是需要占用一定内存的,一般程序所需要的内存由操作系统来分配,由操作系统分配的,自然需要由操作系统回收。但是在实际开发中,用户可以通过一些函数人为地申请内存,再由用户来释放,例如通过C语言的malloc函数动态开辟内存。现在就有一个问题,如果用户没有用free函数释放内存空间,那么这块内存是不是就永远被占用了呢?当程序退出后,动态申请的内存会自动释放吗?
stackoverflow有人问了这么一个问题,下面这段程序执行完毕后,malloc的内存会释放吗
- <span style="font-size:18px;">int main () {
- int *p = malloc(10 * sizeof *p);
- *p = 42;
- return 0; //Exiting without freeing the allocated memory
- }</span>