📄 memmenage.h
字号:
//函数结构体定义及全局变量定义
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "windows.h"
#include "time.h"
#define MEM_SIZE 1024 //
char mem[MEM_SIZE]; //char型数组模拟物理内存
void* blockaddr[MEM_SIZE];//为测试效率记录的块号,最多MEM_SIZE多个块
//数组索引为块好,每个元素内储存该块的对应内存地址
//为了保证块号连续每次申请或释放内存更新一次
int count = 0; //初始化一个数记录内存中的块数
typedef struct memState //标识内存块状态的结构体
{
int begin; //该内存块的开始索引位置
int end; //该内存块的结束索引位置
int state; //该内存块的使用状态1为可用0为已被使用
memState *before; //指向前一个内存块
memState *next; //指向后一个内存块
}memState;
memState *head; //内存块状态结构体的头指针
//不能满足要求,返回null
memState *nextfit;
int request_size_sum=0; //请求的总尺寸
int request_step_sum=0; //请求次数总和
int request_success_sum=0; //请求成功次数
void upDate()
{
void *temp[MEM_SIZE];
for(int j=0;j<MEM_SIZE;j++)
{
temp[j] = blockaddr[j];
}
int i = 0;
int n=0;//记录要更新的数组的索引号
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 + -