valgrind是很好的检查内存泄漏的工具
使用命令:
$ valgrind --tool=memcheck --log-file=/root/valgrind_log_all --leak-check=full --error-limit=no --show-reachable=yes --trace-children=yes /a.out
valgrind具有一些局限性:
1、Valgrind不检查静态分配数组的使用情况
2、栈中的数组溢出也检查不出
3、valgrind会占用了更多的内存--会达到检测程序的两倍
4、一些复杂的内存溢出也检查不出,例如std::string数组下标溢出