今天拿到一個project 在看。其中的問題就在于多次申請與釋放內(nèi)存,導(dǎo)致到后期malloc會失敗。
最方便的解決辦法就是做一個內(nèi)存管理層,接管系統(tǒng)的內(nèi)存調(diào)用函數(shù),使用內(nèi)存管理的方式,一次申請,一次釋放。
有兩種做法,一個是用一個list來維護(hù)全部的數(shù)據(jù)
另外一個是用兩個list來維護(hù),其中一個是被應(yīng)用程序使用的內(nèi)存區(qū),其中一個是已經(jīng)申請,尚未使用或者被應(yīng)用程序釋放的區(qū)塊。
freelist usedlist
list 大小固定(對于目前的應(yīng)用場合)