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