malloc 实验报告[实用论文].pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
malloc 实验报告[实用论文]

malloc实验报告 首先定义一些宏,这对于访问和操作空闲链表是很有帮助的。 #define GET(p) (*(size_t *)(p)) #define PUT(p, val) (*(size_t *)(p) = (val)) #define GET_SIZE(p) (GET(p) ~0x7) #define GET_ALLOC(p) (GET(p) 0x1) #define HDRP(bp) ((int *)(bp) - 2) GET宏是读取和返回参数p引用的字,p是一个指针,相应的PUT是将val写到 参数p指向的字中。GET_SIZE(p)和GET_ALLOC(p)是从地址p处的头部或脚部, 分别返回大小和已分配位。HDRP(bp)返回指向这个块指针bp相应的块的头部的 指针。 利用PUT宏进行初始化堆: int mm_init(void) { if ((heap_listp = mem_sbrk(48)) == NULL) { return -1; } PUT (heap_listp + 0, 0); /*64*/ PUT (heap_listp + 1, 0); /*128*/ PUT (heap_listp + 2, 0); /*256*/ PUT (heap_listp + 3, 0); /*512*/ PUT (heap_listp + 4, 0); /*1024*/ PUT (heap_listp + 5, 0); /*2048*/ PUT (heap_listp + 6, 0); /*4096*/ PUT (heap_listp + 7, 0); /*8192*/ PUT (heap_listp + 8, 0); /*16384*/ PUT (heap_listp + 9, 0); /*32768*/ PUT (heap_listp + 10, 0); /*65536*/ PUT (heap_listp + 11, 0); /*614784*/ return 0; } 0到11为索引值index,分别对应的size值为64*2index void *mm_malloc(size_t size) { int index; int* newPtr; if(size=64){ index=0; size=64; } else if (size = 128) { index = 1; size = 128; } else if (size = 256) { index = 2; size = 256; } else if (size = 512) { index = 3; size = 512; } else if (size = 1024) { index = 4; size = 1024; } else if (size = 2048) { index = 5; size = 2048; } else if (size = 4096) { index = 6; size = 4096; } else if (size = 8192) {

文档评论(0)

zijingling + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档