C++ 內(nèi)存泄漏

指動(dòng)態(tài)申請(qǐng)的內(nèi)存空間沒有正常釋放,也不能夠繼續(xù)使用的情況。

最常見的就是new后沒有正常的使用delete來釋放,導(dǎo)致內(nèi)存泄漏。

1 指針懸掛

指針指向一個(gè)已經(jīng)釋放的地址空間。
兩個(gè)指針指向同一個(gè)內(nèi)存空間,在delete的時(shí)候該空間會(huì)釋放兩次,出現(xiàn)運(yùn)行錯(cuò)誤。

在淺拷貝的時(shí)候經(jīng)常出現(xiàn)。

2 野指針

指向釋放的或者訪問受限內(nèi)存的指針。
-指針變量沒有被初始化(值不定,可以初始化為NULL)
-指針被free或者delete后,沒有置為NULL。free和delete只是把指針指向的內(nèi)存給釋放掉,并沒有消除指針本身,此時(shí)指針指向的是垃圾內(nèi)存(內(nèi)存中隨機(jī)的位置),釋放后的指針應(yīng)該被置為NULL。
-指針操作超越了變量的作用范圍,比如返回指向棧內(nèi)存的指針就是野指針。

3 內(nèi)存泄漏的危害

內(nèi)存泄漏的堆積會(huì)導(dǎo)致系統(tǒng)的所有內(nèi)存被消耗,嚴(yán)重影響使用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容