c语言如果不用工具检测内存泄漏,则只能从源码下手,可以参考如下方法,这里源码以glibc为例。
一、malloc()和free()数量匹配法
1、在c语言中一般使用malloc()来分配动态内存,这个分配的内存在堆区,而且需要使用free()来释放,如果没有free()释放,则会出现内存泄漏,因此首先要匹配这个两个函数在数匪犬挚驰量上是否相等,可以使用grep命令来直接检测源码中两个函数的数量是否相等,如果不相等,一般一定会出现内存泄漏,这个时候需要自己进行源码级的检测,就可以用方法二。

4、输入cmd,打开命令提示符。

6、同样可以执行上面类似的命令来判断。

2、为了阅读方便,你也可以使用grep命令的-C参数,直接显示所有带malloc()的文件上下文多少行的内容。比如执行如下命令:grep -rn -C 5 " malloc(" grep命令显示了malloc()函数所在行的位置,并显示上下各5行的内容。
