單片機(jī)C語言幾種內(nèi)存泄露總結(jié)
日常項(xiàng)目中碰到的內(nèi)存泄露無非有以下幾種:
(1) 堆內(nèi)存泄漏(Heap leak)。堆內(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. 這是最常見的內(nèi)存泄露。
(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)定
如果您創(chuàng)建一個(gè)可接合的POSIX線程,但是忘記聯(lián)接它,其資源或私有內(nèi)存一直保存在進(jìn)程空間中,從未進(jìn)行回收再利用。一定要聯(lián)接可接合的線程;否則,可能會(huì)引起嚴(yán)重的內(nèi)存泄漏問題。
編輯:admin 最后修改時(shí)間:2018-05-18