为什么任何可执行文件都会泄漏内存?

Why any executable leaks memory?

甚至

int
main () {
  return 0;
}

内存泄漏。事实上,运行 valgrind[0] 输出

==21013== HEAP SUMMARY:
==21013==     in use at exit: 72,704 bytes in 1 blocks
==21013==   total heap usage: 1 allocs, 0 frees, 72,704 bytes allocated
==21013== 
==21013== LEAK SUMMARY:
==21013==    definitely lost: 0 bytes in 0 blocks
==21013==    indirectly lost: 0 bytes in 0 blocks
==21013==      possibly lost: 0 bytes in 0 blocks
==21013==    still reachable: 72,704 bytes in 1 blocks
==21013==         suppressed: 0 bytes in 0 blocks

为什么会这样?如果 Valgrind 应该无法通过 C++ 进行泄漏检查,我应该如何亲自检查内存泄漏?

[0], echo "int main() { return 0; }"|c++ -x c++ - -o Main && valgrind ./Main

Valgrind 向您展示,一切正常,没有任何泄漏:

definitely lost: 0 bytes
indirectly lost: 0 bytes
  possibly lost: 0 bytes