【導(dǎo)讀】運(yùn)行時(shí)間,而且容易產(chǎn)生各種內(nèi)存泄露,內(nèi)存釋放錯(cuò)誤等問(wèn)題。為此,需要設(shè)計(jì)一個(gè)通用的。內(nèi)存池來(lái)完成相關(guān)的分配和釋放的工作。首先向系統(tǒng)申請(qǐng)一塊內(nèi)存,這塊內(nèi)存的大小由使用者根據(jù)需要設(shè)置初始內(nèi)存大小。定義一個(gè)如下面代碼所示的雙向鏈表,將從系統(tǒng)分配的內(nèi)存分為若干塊。方便指針向前和向后遍歷查找。鏈表中*Data指向了系統(tǒng)分配的內(nèi)存,pUser使用二級(jí)指針保存了內(nèi)存申請(qǐng)者的地址,方便以后系統(tǒng)內(nèi)存塊更改,改變申請(qǐng)者的指向。后面會(huì)詳細(xì)介紹。小為100字節(jié),那么內(nèi)存池將會(huì)給用戶取整分配三個(gè)內(nèi)存塊。滿足,因此需要擴(kuò)大現(xiàn)有的內(nèi)存池使用大小??紤]到由于分配給用戶的內(nèi)存空間必須要是連。realloc函數(shù)來(lái)滿足要求。大小一定要大于原來(lái)的大小,不然的話會(huì)導(dǎo)致數(shù)據(jù)丟失!不存在了,因此指向它的指針將失效,原有分配的對(duì)象也將失效。1,需要對(duì)多線程的支持,目前的內(nèi)存池還只能在單線程的環(huán)境下運(yùn)行。存的指針地址進(jìn)行重定向,但是之前分別的對(duì)象不能保證。