1.什么是內(nèi)存泄漏(Memory Leak)? 簡單地說就是申請了一塊內(nèi)存空間,使用完畢后沒有釋放掉。它的一般表現(xiàn)方式是程序運行時間越長,占用內(nèi)存越多,最終用盡全部內(nèi)存,整個系統(tǒng)崩潰。由程序申請的一塊內(nèi)存,且沒有任何一個指針指向它,那么這塊內(nèi)存就泄露了。 2、如何檢測內(nèi)存泄露 第一:良好的編碼習(xí)慣,盡量在涉及內(nèi)存的程序段,檢測出內(nèi)存泄露。當(dāng)程式穩(wěn)定之后,在來檢測內(nèi)存泄露時,無疑增加了排除的困難和復(fù)雜度。使用了內(nèi)存分配的函數(shù),一旦使用完畢,要記得要使用其相應(yīng)的函數(shù)釋放掉。 第二:將分配的內(nèi)存的指針以鏈表的形式自行管理,使用完畢之后從鏈表中刪除,程序結(jié)束時可檢查改鏈表。 第三:Boost 中的smart pointer。 第四:一些常見的工具插件,如ccmalloc、Dmalloc、Leaky等等。 |
|