一、malloc和free数量匹配法
1、在c语言中一般使用malloc来分配动态内存,这个分配的内存在堆区,而且需要使用free来释放,如果没有free释放,则会出现内存泄漏,因此首先要匹配这个两个函数在数量上是否相等,可以使用grep命令来直接检测源码中两个函数的数量是否相等,如果不相等,一般一定会出现内存泄漏,这个时候需要自己进行源码级的检测,就可以用方法二。
2、说明:grep是正则表达式工具,-r是递归式查询此工作目录下所有的文件夹及文件。wc命令用于统计检查到的行数。为了确保检测的malloc和free,在前面我都加了一个空格,后面加了一个,具体的正则表达式,还要根据自己的源码风格进行更改,这里以glibc为例来进行说明。
3、上面是linux平台的直接检测方法,同样的在方法在windows平台也可以。以windows10为例,安装了wsl(windows下的linux子系统。首先同时按win+r键打开运行。
4、输入cmd,打开命令提示符。
5、执行bash,即可在windows的命令提示符中打开一个linux下的bash shell。
6、同样可以执行上面类似的命令来判断。