请问如何在c代码中检测内存泄露
不通过使用工具的方法。
在源代码中 添加一些代码来找,有没有这种方法?
[解决办法]
增加个全局变量,分配内存时+1,释放时-1,程序结束时再看下变量的值
我认为 呵呵
[解决办法]
#define malloc my_malloc然后 在my_malloc里面修改成自己的malloc
记录分配的位置大小,
然后同样的办法记录free
程序结束后,打印看看那个没free
[解决办法]
自己管理堆三, 不稀饭glibc管理内存的办法, 分配慢, 释放快...
自己搞个分配快, 释放慢的用 ...
[解决办法]
同意2楼的方法
[解决办法]
判断有没有内存泄漏的方法,只能通过,内存的增长来判断;
而这个事情,又太渺茫,看似是内存的情况太多了;
只有仔细,才是硬道理
[解决办法]
yamd 是C的吧。忘记了
找找开源的工具, 我一般检查内存泄露就是全凭眼力。
靠好多人还以为啥都不懂,其实这个是最好的办法。
工具很多情况下不好使 尤其做服务器程序。
[解决办法]
2楼的做法 , 自己编写的my_malloc 不能出现malloc ,不然也会被预处理....
不用malloc 自己写堆的内存分配?
c++ 可以重载全局new ,delete
如果程序不长的话, 自己找, 或者在malloc realloc free 后都加上记录的语句吧.....
其他的办法我就不知道了.
[解决办法]
或者吧你的程序 .c 改成 .cpp
然后重载全局malloc , realloc ,free 然后试试 ?? 不知道好不好使, 瞎猜的..