//******** 動態分割槽分配方式的模擬 *********
//#include#include#define free 0 //空閒狀態
#define busy 1 //已用狀態
#define ok 1 //完成
#define error 0 //出錯
#define max_length 640 //最大記憶體空間為640kb
typedef int status;
typedef struct freearea//定義乙個空閒區說明表結構
elemtype;
//---------- 線性表的雙向鍊錶儲存結構 ------------
typedef struct dulnode //double linked list
dulnode,*dulinklist;
dulinklist block_first; //頭結點
dulinklist block_last; //尾結點
status alloc(int);//記憶體分配
status free(int); //記憶體**
status first_fit(int,int);//首次適應演算法
status best_fit(int,int); //最佳適應演算法
void show();//檢視分配
status initblock();//開創空間表
status initblock()//開創帶頭結點的記憶體空間鍊錶
//----------------------- 分 配 主 存 -------------------------
status alloc(int ch)
if(p->data.state==free && p->data.size>request)
p=p->next;
}return error;
}//-------------------- 最佳適應演算法 ------------------------
status best_fit(int id,int request)
p=p->next;
}while(p)
if(p->data.state==free && p->data.size>request)
}p=p->next;
}if(q==null) return error;//沒有找到空閒塊
else
}//----------------------- 主 存 回 收 --------------------
status free(int id)
if(p->next->data.state==free)//與後面的空閒塊相連
break;
}p=p->next;
}return ok;
}//--------------- 顯示主存分配情況 ------------------
void show()
}//----------------------- 主 函 數---------------------------
void main()
else if(choice==3) show();//顯示主存
}} else if(choice==0) break; //退出 else //輸入操作有誤
實現動態分配記憶體
有些時候我們需要在記憶體主動申請記憶體來儲存我們的資料,實現動態分配記憶體的效果,標頭檔案 include 宣告了個關於記憶體動態分配的函式 malloc 函式 函式原型 void malloc usigned int size 作用 在記憶體的動態儲存區 堆區 中分配乙個長度為size的連續空間。...
assign 的動態分配
1 通過變數名動態訪問變數 assign name to 2 直接訪問其他程式的變數 assign zliantest1 sbook fldate to 3 通過索引動態訪問結構成員 assign component sy index of structure to 4 通過欄位名動態地訪問結構成員...
2 2順序表的實現 動態分配
initlist l 初始化表。構造乙個空的線性表l,分配記憶體空間。listinsert l,i,e 插入操作。在表l中的第i個位置上插入指定元素e。listdelete l,i,e 刪除操作。刪除表l中第i個位置的元素,並用e返回刪除元素的值。locateelem l,e 按值查詢操作。在表l中...