精选优质文档-倾情为你奉上C语言多线程内存管理模块摘要:一个多线程动态内存管理模块,可以有效地检测C语言中内存泄漏和内存越界等错误。1 原理l 分配通过重新改写内存分配函数,把调用时的信息保存在一个节点中,节点中包括此内存分配的首地址,大小以及分配所在的源文件、函数、行号,并用一个HASH表来保存所有节点。l 越界检测为了检测写越界的错误,在用户申请的内存前后各增加了一定大小的内存作为监测区域,并初始化成预定值(0xdeadbeef)。如果发生越界写操作时,预定值就会发生改变, 即可检测到越界操作错误。l 释放重新改写内存释放函数free,释放时节点从HASH表中删除并进行越界检测。l 查看手动调用show_memory()或show_memory_summary()查看内存使用情况并进行越界检测。以下涉及内存分配和内存释放的函数被重新改写:1. malloc2. calloc3. realloc4. strdup5. strndup6. asprintf7. vasprintfHA