|
|
下面这个程序执行一次,也就是5000次循环调用foo?()函数,执行前后通过free参看内存,发现可用内存减少了1.2M左右,这是否正常?
如果正常的话,减少的1.2M内存为何得不到释放呢?这个应该由内核负责释放的吧。
如果是内存泄漏,那会哪些原因导致的呢?请举点常见的错误编码。谢谢!
(我已经用memwatch和valgrind查过,未发现内存泄漏现象)
void main()
{
int t=0;
while(t++<5000){
foo1();
foo2();
}
}
另外,这样判断内存泄漏是否正确?
以single用户登陆,只运行需要测试的程序。在执行程序前后用free查看used和free Mem, 通过查看used/free 内存值的变化来判断。
如果发现free内存减少,是不是就可以断定内存泄漏了呢? |
|