您的位置:首页 > 其它

valgrind 检测C程序是否造成内存泄露.

2015-03-19 14:42 281 查看
常理说,既然你malloc了,就记得free.

但是,但是, 如果C的程序长长长的话, 在某个函数局部申请了一块堆上内存.传递出去, 用了很久, 很可能会随着指针使用的时间长度,而忘记这个指针指向的内存是否释放. 亦或会重复释放同一区域. 这都会造成内存泄露.

这里介绍一款神器(其实看 Expert C programming)的时候就看到有这东东了,但是一直都没怎么更加养成良好的代码检测习惯(大项目的经验和机会缺乏). 

神器的官网.

http://valgrind.org/

只要运行 valgrind 后面跟上你想测试的C程序, 那么就可能利用valgrind



#include <stdio.h>

int main()
{
int *p_mem = malloc(sizeof(int)*3);

return 0;
}


我们来测试上面这个demo,就会发现这个程序内存泄露.而且,valgrind能够很准确的定位在程序代码的具体哪个位置发生了内存泄露.



工具都是次要的, 良好的检查习惯, 以及编码习惯才是最重要的. 程序是人写的. 重点是要不断的提高个人素质.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: