为什么任何可执行文件都会泄漏内存?
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
甚至
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