无论我运行什么程序,Valgrind都会告诉我,即使有一个简单的程序,也可以在3个区块中丢失72个字节:
int main(void)
{
printf("Hello, World!\n");
return 0;
}
你知道这是否是Mac OS sierra上的Valgrind错误?
我怎么能用这样的程序泄漏内存?
答案 0 :(得分:2)
如果任何预加载的库(例如,通过LD_PRELOAD
)或链接的C运行时的任何部分都有内存泄漏,则很可能发生这种情况。
CRT还会执行一些内存分配,这些分配永远不会故意释放,但通常这些只是一次性事情,每个进程只发生一次。
Valgrind无法可靠地区分您的应用程序的哪些部分。您只能检查分配内存的堆栈跟踪,并确定这是否是您的域。