C语言不会释放。所谓动态内存,是由malloc系列函数进行申请的内存,除非在程序中使用free释放,否则该段内存不会被释放掉。
标准库中malloc函数的实现原理。要了解针对malloc的内存存储结构,malloc不像全局变量一样,不是在编译器编译的时候就会分配内存空间,而是在调用到malloc函数时才会分配空间。有时还会中途调用free函数释放空间出来。
扩展资料
free:释放malloc分配的存储空间
malloc用于向系统申请一定数量的内存,如果你的程序一味的申请内存供自己使用,那么系统可分配给其它程序的内存就会减少,到最后无内存可用,最终导致系统运行缓慢,不稳定等问题。显然,这种只索取不奉献的行为是不可取的因此,C语言提供了free函数,用于向系统返还借用的内存。
当忘记使用free释放由malloc分配的内存时,表明程序存在”内存泄露“这一顽疾,因此对于上面的程序,在return 0之前,使用下面的代码进行完善。
参考资料来源:百度百科—c语言
退出 程序 资源就会释放, 手动free也会释放。你点叉,退不退出程序?退出程序并不是指把窗口关掉。
一般来说,可以在命令行里面执行你的程序,然后 把窗口关了,如果还在执行就没释放。
楼上的不知道不要乱说,这样会误导别人的。首先,malloc分配的内存是在堆上的,这部分内存是程序自己申请的,必须自己去释放。如果,不释放,那么,在程序运行的期间,他会一直占用。当程序结束的时候,他会被 *** 作系统释放。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)