91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-13
  • 語言: C/C++
  • 標簽: Buddy??伙伴??算法??

資源簡介

Buddy 伙伴 算法 ,Windows編程環境。

資源截圖

代碼片段和文件信息

#include//包含頭文件
int?free[10]=?{0000000001}
??????????????use[100][2]=?{0}buddy[10]=?{2481632641282565121024}
???????????????????????????free_add[10][50]=?{0}usenum=0;?????//定義外部變量
void?PrintTable(?) //輸出功能表函數
{
????printf(“功能說明表:\n“);
????printf(“1.申請內存\n“);
????printf(“2.釋放內存\n“);
????printf(“3.退出\n“);
}
void?show()?????//輸出內存占用情況
{
????int?ij;
????printf(“\n內存空閑區剩余情況:\n“);
????for(i=0;?i<10;?i++)??????????????????//輸出空閑情況
????{
????????printf(“%4d:有%d個空閑塊????起始地址分別為:?“buddy[i]free[i]);
????????for(j=0;?j????????????printf(“%4d~%4d?“free_add[i][j]free_add[i][j]+buddy[i]-1);//??
????????printf(“\n“);
????}
????printf(“\n內存已分配區情況:\n“);?????//輸出占用情況
????for(i=0;?i????????printf(“%2d:??大小:%4d???內存地址:%4d~%4d\n“i+1buddy[use[i][0]]use[i][1]use[i][1]+buddy[use[i][0]]-1);
}
void?main()
{
????int?ijkordersizestartmaxsize=9usepageshengfree_startflag;
????PrintTable();
????// free_add[2][0]=0;
????free_add[9][0]=0;//初始化已分配內存
b:
????show();
????printf(“\n輸入你要執行的命令:“);
????scanf(“%d%*c“?&order);
????while(?order?!=?3?) //接受命令
????{
????????if?(?order??3?)????//非法命令檢測
????????{
????????????printf(“輸入的非法命令,請重新輸入:“);
????????????scanf(“%d%*c“?&order);
????????????continue;
????????}
????????if?(?order?==?1?)
????????{
a:
????????????printf(“輸入作業申請空間的大小(1~1024):“); //輸入要申請內存的大小
????????????scanf(“%d%*c“?&size);
????????????if(size<1||size>1024)
????????????{
????????????????printf(“請輸入1~1024之間的數字\n“);?????//檢查輸入正確性
????????????????goto?a;
????????????}
????????????else?if(size>buddy[maxsize])
????????????{
????????????????printf(“沒有足夠的內存,請先釋放\n“);?????//檢查內存空間
????????????????goto?a;
????????????}
????????????else
????????????{
????????????????for(i=0;?i<10;?i++)
????????????????{
????????????????????if(free[i]!=0&&size<=buddy[i])?break;?????//尋找合適內存
????????????????}
????????????????usepage=i;
????????????????free[i]--;
????????????????for(i=0;?i<10;?i++)
????????????????{
????????????????????if(buddy[i]>=size)?break;?????//尋找分裂大小
????????????????}
????????????????use[usenum][0]=i;
????????????????use[usenum][1]=free_add[usepage][free[usepage]]; //添加已分配表
????????????????sheng=buddy[usepage]-buddy[use[usenum][0]];
????????????????start=free_add[usepage][free[usepage]]+buddy[usepage]-buddy[usepage-1];?????? //首地址確定
????????????????usenum++;
????????????????for(i=usepage-1;?i>=0;?i--)?????????????//添加其他頁面內存大小
????????????????{
????????????????????if(sheng>=buddy[i])
????????????????????{
????????????????????????free[i]++;
????????????????????????free_add[i][free[i]-1]=start;
????????????????????????sheng-=buddy[i];
????????????????????????start-=buddy[i-1];?????? //首地址確定
????????????????????}
????????????????????if(sheng==0)?break;
????????????????}
????????????????if(free[maxsize]==0)?????????????//確定最大剩余空間
????????????????{
????????????????????maxsize=0;
????????????????????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????6108??2011-08-31?09:49??myBuddy.c

評論

共有 條評論