C語言實現動態分割槽分配

2021-10-01 09:24:42 字數 2049 閱讀 8728

**重複度還是很高的,存在簡化的空間。

#define _crt_secure_no_warnings

#include

#include

#include

#include

#define len sizeof(qu)

int m =0;

typedef

struct fenqu

qu;qu* tin =

null

;//懸停指標

qu*creat()

//初始化}}

qu*cr()

}void

xs(qu* h)

}void

sort1

(qu* l)

p->next = pre->next;

pre->next = p;

p = r;}}

void

sort2

(qu* l)

p->next = pre->next;

pre->next = p;

p = r;}}

qu*shouci

(qu* h, qu* x)

if(p->size = x->size && p->status ==0)

n = p;

p = p->next;}if

(kk ==0)

printf

("沒有足夠空間!\n");

}qu*

xhshouc

(qu* tou, qu* h, qu* x)

u = n;

n = n->next;

} p = h;

int kk =0;

while

(p)if

(p->size = x->size && p->status ==0)

p = p->next;

ll++;if

(p ==

null

)p = tou;

if(ll > m)

break;}

if(kk ==0)

printf

("沒有足夠空間!\n");

}qu*

zuijia

(qu* h, qu* x)

if(p->size = x->size&& p->status ==0)

n = p;

p = p->next;}if

(kk ==0)

printf

("沒有足夠空間!\n");

}qu*

zuicha

(qu* h, qu* x)

if(p->size = x->size && p->status ==0)

n = p;

p = p->next;}if

(kk ==0)

printf

("沒有足夠空間!\n");

}void

huishou

(qu *h)

n = p;

p = p->next;}if

(kk ==0)

printf

("找不到該分割槽!\n");

}void

hs(qu* h)

} n = p;

p = p->next;}}

void

ff(qu* h, qu* x)

else

break

;case3:

tin=

zuijia

(head, x)

;break

;case4:

tin =

zuicha

(head, x)

;break

;default

:printf

("重新選擇!\n");

kk =0;

break;}

if(kk ==1)

break;}

}void

main()

xs(head);}

}```

動態分割槽分配

一 實驗目的 1.通過這次實驗,加深對動態分割槽分配的理解,進一步掌握首次適應演算法和最佳適應演算法的理解。了 解動態分割槽分配方式中使用的資料結構和分配演算法,進一步加深對動態分割槽儲存管理方式及其實現 過程的理解。提高學生設計實驗 發現問題 分析問題和解決問題的能力。2.學會可變式分割槽管理的原...

動態分割槽分配

動態分割槽分配是根據程序的實際需要,動態的為之分配記憶體的空間。總體是按照演算法規則找到分配的空閒分割槽,然後從該分割槽中再按照作業的大小劃出一塊記憶體空間分給作業,該分割槽餘下的空閒分割槽當做乙個新的空閒分割槽留在空閒鏈中。當作業按照演算法規則分配好了後,等作業執行完畢釋放記憶體,系統根據 區的首...

動態分割槽分配演算法

動態分割槽分配演算法 一.順序搜尋的動態分割槽分配演算法 1.首次適應演算法 first fit 演算法思想 將空閒分割槽鏈以位址遞增的順序連線 在進行記憶體分配時,從鏈首開始順序查詢,直到找到一塊分割槽的大小可以滿足需求時,按照該作業的大小,從該分割槽中分配出記憶體,將剩下的空閒分割槽仍然鏈在空閒...