我正在尝试完成大学作业,并且标记条件指定内存管理的5% - 特别是没有内存泄漏。
据我了解,简单C程序中的内存泄漏只是由程序放弃的指针引起的 - 即,malloc / calloc / etc调用从不具有相应的free
。
我的问题分为三部分:
答案 0 :(得分:5)
Valgrind是你的朋友。
答案 1 :(得分:3)
答案 2 :(得分:1)
Mac OS的答案和避免的示例(为您节省了半个小时)。
Mac OS不附带Valgrind或dmalloc。此外,Valgrind在尝试将其安装在Sierra中时存在一些兼容性问题。
有一个名为“ leaks”的实用程序,我可以通过它运行它:
leaks -atExit --/Contents/Developer/usr/lib/libLeaksAtExit.dylib ./a.out
不幸的是,这个没有报告明显的内存泄漏 ...也许我使用错了,但是我只是在寻找一种 easy 方法来检查我的C程序应释放其内存。
如果有时间,可能 阅读并使用Using OSX Leaks for C Programs on the Command Line?
资源:
PS:也许如果与“ iprofiler”一起使用,它可能会很有用,但是我没有安装它。
答案 3 :(得分:0)
还有dmalloc