一、实验要求
写一个封装好的内存分配器,可以捕捉当在代码中调用malloc和free时所出现的错误。也就是检测出内存泄漏、重复释放指针两次、数组越界等问题。
二、数据结构
定义一个结构体,在每块请求的内存前面是一个结构体+一个fence。结构体如下:
占用16个字节。又因为一个fence是4个字节,所以在每块有效内存前面是20字节,在有效内存后面是4字节的fence。所以每块完整的经过封闭的内存是24+size字节。
又定义了一个链表结点,用来存储每一块已分配的内存块,如下:
三、宏
定义了5个宏,如下:
四、辅助函数
定义了5个辅助函数,如下:
五、与分配内存有关的函数
几个需要实现的函数主体如下:
六、错误号对应的信息
char *getMsg(int

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

被折叠的 条评论
为什么被折叠?



