?? memmenage.h
字號:
//函數(shù)結(jié)構(gòu)體定義及全局變量定義
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "windows.h"
#include "time.h"
#define MEM_SIZE 1024 //
char mem[MEM_SIZE]; //char型數(shù)組模擬物理內(nèi)存
void* blockaddr[MEM_SIZE];//為測試效率記錄的塊號,最多MEM_SIZE多個塊
//數(shù)組索引為塊好,每個元素內(nèi)儲存該塊的對應內(nèi)存地址
//為了保證塊號連續(xù)每次申請或釋放內(nèi)存更新一次
int count = 0; //初始化一個數(shù)記錄內(nèi)存中的塊數(shù)
typedef struct memState //標識內(nèi)存塊狀態(tài)的結(jié)構(gòu)體
{
int begin; //該內(nèi)存塊的開始索引位置
int end; //該內(nèi)存塊的結(jié)束索引位置
int state; //該內(nèi)存塊的使用狀態(tài)1為可用0為已被使用
memState *before; //指向前一個內(nèi)存塊
memState *next; //指向后一個內(nèi)存塊
}memState;
memState *head; //內(nèi)存塊狀態(tài)結(jié)構(gòu)體的頭指針
//不能滿足要求,返回null
memState *nextfit;
int request_size_sum=0; //請求的總尺寸
int request_step_sum=0; //請求次數(shù)總和
int request_success_sum=0; //請求成功次數(shù)
void upDate()
{
void *temp[MEM_SIZE];
for(int j=0;j<MEM_SIZE;j++)
{
temp[j] = blockaddr[j];
}
int i = 0;
int n=0;//記錄要更新的數(shù)組的索引號
for(i=0;i<=count;i++)
{
if(temp[i]!=NULL)
{
blockaddr[n] = temp[i];
n++;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -