C++什么是内存泄漏
生活随笔
收集整理的這篇文章主要介紹了
C++什么是内存泄漏
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
內(nèi)存泄漏
- 內(nèi)存泄漏的分類
- 1. 堆內(nèi)存泄漏 (Heap leak)。
- 2. 系統(tǒng)資源泄露(Resource Leak)。主要指程序使用系統(tǒng)分配的資源比如
- 3. 沒有將基類的析構(gòu)函數(shù)定義為虛函數(shù)。當(dāng)基類指針指向子類對(duì)象時(shí),如果基類的析構(gòu)函
內(nèi)存泄漏的分類
1. 堆內(nèi)存泄漏 (Heap leak)。
對(duì)內(nèi)存指的是程序運(yùn)行中根據(jù)需要分配通過 malloc,realloc
new 等從堆中分配的一塊內(nèi)存,再是完成后必須通過調(diào)用對(duì)應(yīng)的 free 或者 delete 刪掉。如果
程序的設(shè)計(jì)的錯(cuò)誤導(dǎo)致這部分內(nèi)存沒有被釋放,那么此后這塊內(nèi)存將不會(huì)被使用,就會(huì)產(chǎn)生 Heap
Leak.
2. 系統(tǒng)資源泄露(Resource Leak)。主要指程序使用系統(tǒng)分配的資源比如
Bitmap,handle ,SOCKET 等沒有使用相應(yīng)的函數(shù)釋放掉,導(dǎo)致系統(tǒng)資源的浪費(fèi),嚴(yán)重可導(dǎo)致系統(tǒng)
效能降低,系統(tǒng)運(yùn)行不穩(wěn)定。
3. 沒有將基類的析構(gòu)函數(shù)定義為虛函數(shù)。當(dāng)基類指針指向子類對(duì)象時(shí),如果基類的析構(gòu)函
數(shù)不是 virtual,那么子類的析構(gòu)函數(shù)將不會(huì)被調(diào)用,子類的資源沒有正確是釋放,因此造成內(nèi)
存泄露。
總結(jié)
以上是生活随笔為你收集整理的C++什么是内存泄漏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 长期吃方便面会胖吗?
- 下一篇: s3c2440移植MQTT