標(biāo)題: 內(nèi)存的malloc和free結(jié)構(gòu)體 [打印本頁]

作者: 51黑黑黑    時間: 2016-2-23 23:21
標(biāo)題: 內(nèi)存的malloc和free結(jié)構(gòu)體
內(nèi)存的malloc和free結(jié)構(gòu)體:
接上文,內(nèi)存也需要像FAT32文件這樣操作。動態(tài)分配這個空間。

那么,一個什么樣的結(jié)構(gòu),可以滿足內(nèi)存的動態(tài)分配呢?

struct RAM{
int *Pbefore;
int *Pstart;
int lenth;
int *Pnext;
};
int  *Pstart:空白內(nèi)存的首地址
int   lenth:空白內(nèi)存的長度
int   *Pnext:下一個空白內(nèi)存地址
int *Pbefore:上一個空白內(nèi)存地址

動態(tài)分配RAM的過程:
1:順著鏈表一個方向,尋找大于申請空間的RAM

2:找到之后,將Pstart = Pstart + lenth;//修改剩余空間的指針

3:將lenth =lenth - Req_lenth;       //剩余的空間

4:同時回朔上一個空白地址結(jié)構(gòu),將其Pnext = Pstart; //修改上一個RAM的Pnext指向地址

4:返回最早的地址。


這只是一個最簡單的模型:在這個模型里面,我們只要一找到有空白空間,就進(jìn)行分配

   其實(shí),是不是可以再找找看,有沒有更合適的空間,剛剛比需要的空間大一點(diǎn)點(diǎn),這樣,內(nèi)存的使用是不是更有效果呢?!






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1