一个关于内存释放的疑问?

img


我在0的选项处设置了一个releasecardlist的函数,即用free释放内存,如果我不输入0来退出,而是在运行的时候直接关掉运行窗口,free函数还会起作用吗?这个时候内存是不是泄露了?

直接关闭窗口,free不会被调用。系统也会报内存泄漏。
但在程序退出时候的泄漏已经无所谓了,程序退出,所有占用的内存都会被系统回收的。
泄漏的主要问题体现在你程序运行过程中,系统不断地申请新内存,但不进行释放,会导致资源耗尽而崩溃。

内存泄漏这种事情,只会在你的程序长时间运行,又不停申请内存的时候才会发生
你进程都结束了,那肯定所有申请的内存都被系统回收了呀
此时执行不执行free都一样了
换句话说,如果你的程序执行一次就退出,那你不管申请多少内存都不会泄露
如果你的程序根本不申请内存,那它不管执行多长时间也都不会泄露
只有你在循环里不停的申请内存的时候,就要注意不用了的内存要赶快释放,否则内存耗尽程序崩溃事小,系统崩溃事大