Valgrind 可能会在简单程序中丢失记忆

Valgrind possibly lost memory in simple programs

无论我使用什么程序 运行 Valgrind 告诉我 3 个块中有 72 个可能丢失的字节,即使使用像这样的简单程序也是如此:

int main(void)
{
    printf("Hello, World!\n");
    return 0;
}

你知道这是否是 Mac OS sierra 上的 Valgrind 错误?

我怎么会用这样的程序泄漏内存?

如果任何预加载的库(例如通过 LD_PRELOAD)或链接的 C 运行时的任何部分有内存泄漏,这很可能会发生。

还有一些由 CRT 执行的内存分配从未有意释放,但通常这些只是一次性的事情,每个进程只发生一次。

Valgrind 无法可靠地区分应用程序的组成部分和非组成部分。您只能从分配内存的位置检查堆栈跟踪,并确定那是否是您的域。