实验三——Malloc Lab

本文档详述了一项实验,旨在构建一个内存分配器,用于检测内存泄漏、重复释放和数组越界等错误。实验涉及设计特定的数据结构、宏、辅助函数和内存分配相关函数,通过一系列测试用例验证其功能。在实验过程中,作者发现了修改内存块头部信息可能导致的严重问题,并调整了数据结构以避免此类错误。
摘要由CSDN通过智能技术生成

一、实验要求
写一个封装好的内存分配器,可以捕捉当在代码中调用malloc和free时所出现的错误。也就是检测出内存泄漏、重复释放指针两次、数组越界等问题。

二、数据结构
定义一个结构体,在每块请求的内存前面是一个结构体+一个fence。结构体如下:
这里写图片描述

占用16个字节。又因为一个fence是4个字节,所以在每块有效内存前面是20字节,在有效内存后面是4字节的fence。所以每块完整的经过封闭的内存是24+size字节。
又定义了一个链表结点,用来存储每一块已分配的内存块,如下:
这里写图片描述

三、宏
定义了5个宏,如下:
这里写图片描述

四、辅助函数
定义了5个辅助函数,如下:
这里写图片描述

这里写图片描述

五、与分配内存有关的函数
几个需要实现的函数主体如下:
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

六、错误号对应的信息

char 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值