#include <stdlib.h>
#include <unistd.h>
#include <mcheck.h>
int main() {
int i = 10;
char *p = NULL;
mtrace();
while (i--) {
p = malloc(32);
sleep(1);
}
free(p);
return 0;
}
gcc -g -o memcheck memcheck.c
MALLOC_TRACE=/home/junlon2006/Workspace/study/test/mem.log
mtrace memcheck mem.log
本文展示了一个使用mtrace进行内存泄漏检测的C语言程序实例。通过gcc编译器的mtrace选项,配合自定义的malloc和free调用,可以记录所有内存分配和释放的情况,并在程序结束时检查是否有未释放的内存,从而帮助开发者定位和修复内存泄漏问题。

4033

被折叠的 条评论
为什么被折叠?



