相信很多人在用C語言編寫程序時,常常會用到動態內存分配的函數。而使用這樣的函數,往往會一不留神就造成內存泄漏。雖然說世面上有很難多檢查內存泄漏的工具,功能也很強大。對於簡單檢測方式,這三個函數,相對來說,還是比較不錯的,也是一種解決內存泄漏問題的方法之一吧。
static int c=0;
return(&c);
}
void *_malloc(int s)...{
int *c=_mem_check();
void *p=malloc(s);
if(p)...{
(*c)++;
}
return(p);
}
void _free(void *p)...{
int *c=_mem_check();
free(p);
if(p)...{
(*c)--;
}
return;
}
代碼很簡單,基本上不用做太多的解釋。只要在程序退出之前查看一下計數器的計數是否爲0就可以了。如果是0的話,那很好,你所寫的代碼沒有內存泄漏。如果不爲0的話,這個計數器的數,就是記錄了你有多少個內存分配沒有在程序退出前回收。
void *p=NULL;
int *c=_mem_check();
p=_malloc(1024);
_free(p);
printf("%d ",*c);
return(0);
}