n特征
–含有這種錯(cuò)誤的函數(shù),每被調(diào)用一次,就丟失一塊內(nèi)存(制造內(nèi)存垃圾)
–剛開(kāi)始時(shí),系統(tǒng)內(nèi)存充足,看不到任何錯(cuò)誤
–當(dāng)系統(tǒng)運(yùn)行相當(dāng)一段時(shí)間后,就會(huì)突然死掉,出現(xiàn)提示:內(nèi)存耗盡
–需長(zhǎng)期穩(wěn)定運(yùn)行的服務(wù)程序?qū)?nèi)存泄漏最敏感
–嚴(yán)重程度取決于
n每次遺留內(nèi)存垃圾的多少
n代碼被調(diào)用的次數(shù)
n解決對(duì)策
–在需要的時(shí)候才malloc,并盡量減少malloc的次數(shù)
nmalloc的執(zhí)行效率就不高,過(guò)多的malloc使程序性能下降
n能用自動(dòng)變量解決的問(wèn)題,就不要用malloc來(lái)解決
nmalloc一般在大塊內(nèi)存分配和動(dòng)態(tài)內(nèi)存分配時(shí)使用
–重復(fù)使用malloc申請(qǐng)到的內(nèi)存
–盡量讓malloc和與之配套的free在一個(gè)函數(shù)或模塊內(nèi)
n盡量把malloc集中在函數(shù)的入口處,free集中在函數(shù)的出口處
n以上做法只能盡量降低產(chǎn)生泄露的概率。完全杜絕內(nèi)存泄露,關(guān)鍵要靠程序員的細(xì)心與責(zé)任感
![]() | ![]() .. 定價(jià):¥45 優(yōu)惠價(jià):¥42 更多書(shū)籍 |
![]() | ![]() .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書(shū)籍 |