c模拟内存分配算法(首次适应算法,最佳适应算法,最坏适应算法)

#include<bits/stdc++.h>
using namespace std;
/*定义内存的大小为100*/
#define MEMSIZE 100
/*如果小于此值,将不再分割内存*/
#define MINSIZE 2

/*内存分区空间表结构*/
typedef struct _MemoryInfomation
{
    /*起始地址*/
    int start;
    /*大小*/
    int Size;
    /*状态 F:空闲(Free) U:占用(Used) E 结束(End)*/
    char status;
} MEMINFO;

/*内存空间信息表*/
MEMINFO MemList[MEMSIZE];

/*显示内存状态*/
void Display()
{
    int i,used=0;//记录可以使用的总空间量
    printf("\n---------------------------------------------------\n");
    printf("%5s%15s%15s%15s","Number","start","size","status");
    printf("\n---------------------------------------------------\n");
    for(i=0; i<MEMSIZE&&MemList[i].status!='e'; i++)
    {
        if(MemList[i].status=='u')
        {
            used+=MemList[i].Size;
        }
        printf("%5d%15d%15d%15s\n",i,MemList[i].start,MemList[i].Size,MemList[i].status=='u'?"USED":"FREE");
    }
    printf("\n----------------------------------------------\n");
    printf("Totalsize:%-10d Used:%-10d Free:%-10d\n",MEMSIZE,used,MEMSIZE-used);
}

/*初始化所有变量*/
void InitMemList()
{
    int i;
    MEMINFO temp= {
    0,0,'e'};
    //初始化空间信息表
    for(i=0; i<MEMSIZE; i++
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值