new 和 delete 不匹配導致記憶體洩漏。
最開始因為指標被我不小心delete了,導致有錯誤,就遮蔽了。
網上學習了用valgrind 定位洩漏記憶體的位置,比較方便。
然後,編譯源程式, 比如 g++ -g -o testexe testexe.cpp
然後利用valgrind 進行定位,可執行程式可能有引數,正常執行就可以,只需要在前面加上valgrind 以及引數
valgrind --tool=memcheck --leak-check=yes ./testexe
或:valgrind --tool=memcheck --leak-check=full --show-reachable=yes --trace-children=yes
例項介紹利用valgrind定位記憶體洩漏問題
在前面的文章中,我們簡單了解了valgrind工具的用途以及安裝,以便大家能進行實際操作。在本文中,我們通過例項來看看如何利用valgrind來定位記憶體洩漏問題。先看程式 include include char getmemory int main 只要是懂一點c c 的人,就很容易看出上述程式...
例項介紹利用valgrind定位記憶體洩漏問題
不過,這樣看著也挺蛋疼的,如果 過多,肉眼據不太好分析了,能不能把記憶體洩漏的 行給找出來呢?當然能!回想一下我們之前介紹過得core dump定位到 行的問題,兩個必要條件是 編譯時必須有 g引數 編譯後不能strip.我們一起再看看 fix後的 如下 include include char g...
記憶體洩漏 valgrind工具
1 安裝 tar jxvf valgrind 3.14.0.tar.bz2 cd valgrind 3.14.0 autogen.sh configure make make install 2 安裝成功之後即可使用命令valgrind valgrind help即可顯示引數 常用命令 valgri...