模擬內(nèi)存管理。
申請內(nèi)存時,若當(dāng)前結(jié)點(diǎn)指示的內(nèi)存為空且大小相同,則直接將該節(jié)點(diǎn)的標(biāo)志位置成0,并返回該節(jié)點(diǎn)的首地址,若當(dāng)前結(jié)點(diǎn)指示的內(nèi)存空間大于申請的空間,則申請一個新結(jié)點(diǎn)插入到當(dāng)前結(jié)點(diǎn)的后面,將當(dāng)前節(jié)點(diǎn)的標(biāo)志位置成0,內(nèi)存塊大小改成申請的內(nèi)存的大小,將新建結(jié)點(diǎn)的標(biāo)志位置成空,大小為原來塊的大小減去當(dāng)前結(jié)點(diǎn)塊的大小。
若申請的內(nèi)存空間大于當(dāng)前空結(jié)點(diǎn)的塊的大小,則繼續(xù)向后查找。
釋放內(nèi)存時,定義*prev,*prv *prev指向釋放內(nèi)存塊,prv指向所釋放內(nèi)存塊的前結(jié)點(diǎn)。
若釋放的節(jié)點(diǎn)的首地址與當(dāng)前結(jié)點(diǎn)的首地址相同且當(dāng)前結(jié)點(diǎn)不空,將當(dāng)前結(jié)點(diǎn)的標(biāo)志位置成1,若當(dāng)前結(jié)點(diǎn)的前一結(jié)點(diǎn)為空,則合并,若當(dāng)前結(jié)點(diǎn)的后一結(jié)點(diǎn)為空,則再合并
標(biāo)簽:
模擬
內(nèi)存管理
內(nèi)存
上傳時間:
2016-08-16
上傳用戶:tzl1975