1.內(nèi)存泄露的定義:內(nèi)存泄漏簡(jiǎn)單的說(shuō)就是申請(qǐng)了?塊內(nèi)存空間,使?完畢后沒(méi)有釋放掉。 它的?般表現(xiàn)?式是程序運(yùn)?時(shí)間越?,占?內(nèi)存越多,最終?盡全部?jī)?nèi)存,整個(gè)系統(tǒng)崩潰。由程序申請(qǐng)的?塊內(nèi)存,且沒(méi)有任何?個(gè)指針指向它,那么這塊內(nèi)存就泄漏了。
2.如何檢測(cè)內(nèi)存泄漏
?先可以通過(guò)觀察猜測(cè)是否可能發(fā)?內(nèi)存泄漏, Linux 中使? swap 命令觀察還有多少可?的交換空間,在?兩分鐘內(nèi)鍵?該命令三到四次,看看可?的交換區(qū)是否在減少。
還可以使? 其他?些 /usr/bin/stat ?具如 netstat、 vmstat 等。如發(fā)現(xiàn)波段有內(nèi)存被分配且從不釋放,?個(gè)可能的解釋就是有個(gè)進(jìn)程出現(xiàn)了內(nèi)存泄漏。
當(dāng)然也有?于內(nèi)存調(diào)試,內(nèi)存泄漏檢測(cè)以及性能分析的軟件開(kāi)發(fā)?具 valgrind 這樣的?具來(lái)進(jìn)?內(nèi)存泄漏的檢測(cè)
3.在編譯時(shí)使用??-fsanitize=address
g++ -o demo demo.cpp -g -fsanitize=address
運(yùn)行后
紅字符 提示內(nèi)存泄漏文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-726876.html
藍(lán)色字符提示哪一行泄漏 泄漏了多少文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-726876.html
到了這里,關(guān)于C++經(jīng)典面試題:內(nèi)存泄露是什么?如何排查?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!