0%

free函数

前言

做到一个题,要求删除链表结点后释放内存,乍一看,挺简单的,不就delete或free一下就可以了吗。调试时还是有点不一样的收获的,记录一下。

内存泄漏

就是如果开辟了内存,而没有去释放它,可能造成失去控制权而不能再使用内存,即内存泄漏。

free函数

代码片段:

1
2
3
4
5
cout<<"before"<<maxPrev;
free(maxPrev);
cout<<"after"<<maxPrev;
maxPrev=NULL;
cout<<"after"<<maxPrev;

运行结果:
在这里插入图片描述
如果使用 free(maxPrev); 释放之后,原来的数据还在。但的确是释放了,释放的意思是这个内存可以分配给人家使用,当然,人家用了之后数据就会是人家需要的内容了。
这就好比你租房子之后退了,房里留下了一些东西,其他人在来租之后,使用权是人家的,人家爱怎么布置怎么布置。
但上面存在的问题就是数据还在那,所以 free 之后,紧跟着清空。房子清空了再租给人家。

------------- Thank you for reading -------------

Title - Artist
0:00