实验7 内存块的申请与释放

实验7 内存块的申请与释放

ID:38697270

大小:52.00 KB

页数:11页

时间:2019-06-17

实验7 内存块的申请与释放_第1页
实验7 内存块的申请与释放_第2页
实验7 内存块的申请与释放_第3页
实验7 内存块的申请与释放_第4页
实验7 内存块的申请与释放_第5页
资源描述:

《实验7 内存块的申请与释放》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验七内存块的申请与释放   [实验目的]1.掌握内存动态分区的实现方法2.进一步掌握内存块的分配策略3.掌握内存块申请与释放的算法与实现[实验内容]本次实验是模拟实现内存的动态分区的分配算法。假设内存的大小为100KB。分别使用首次适应算法,最佳适合算法去分配和释放内存空间,并显示内存的分配情况。要求:i)在读完程序后,将函数FirstFit_new()补充完整,写在实验报告上;ii)运行程序,将测试结果写在实验报告上。[程序]/**------------------------------------------------------进入程序后可以根据菜单选

2、项进入不同的模块1.使用首次适应算法分配空间2.使用最佳适应算法分配空间3.释放一块空间4.显示内存分配情况5.退出系统----------------------------------------------------------**/#include#include#include#include#defineMEMSIZE100/*定义内存大小为100*/#defineMINSIZE2/*如果小于此值将不再分割内存*/typedefstruct_MemoryInfomation{/

3、*内存空间分区表结构*/intstart;/*起始地址*/intsize;/*大小*/charinfo;/*状态F:空闲(Free)U:占用(Used)E结束(end)*/}MEMINFO;MEMINFOMemList[MEMSIZE];//内存空间信息表voidDisplay();/*--------------------------------------------------------函数名:InitALL()功能:初始化所有变量--------------------------------------------------------*/voidI

4、nitAll(){inti;MEMINFOtemp={0,0,'e'};for(i=0;i

5、--------------------------------*/voidFirstFit_new(){inti,j,size;chartemp[10];printf("FirstFit_new:HowmanyMEMORYrequir?");gets(temp);size=atoi(temp);//将字符串转化为整数for(i=0;i=size&&MemList[i].info=='f')//满足所需要的大小,且是空闲空间{

6、if(MemList[i].size-size<=MINSIZE)//如果小于规定的最小差则将整个空间分配出去MemList[i].info='u';//标志为使用else{for(j=MEMSIZE-2;j>i;j--)//将i后的信息表元素后移{MemList[j+1]=MemList[j];}//将i分成两部分,使用低地址部分MemList[i+1].start=MemList[i].start+size;MemList[i+1].size=MemList[i].size-size;MemList[i+1].info='f';MemList[i].size=s

7、ize;MemList[i].info='u';}break;}}if(i==MEMSIZE-1

8、

9、MemList[i].info=='e')//没有找到符合分配的空间{printf("NotEnoughMemory!!");getchar();}Display();}/*--------------------------------------------------------函数名:BestFit_new()功能:最佳适应算法分配内存--------------------------------------------------------*/v

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。