请问一个简单的内存池管理程序
实现一个简单的内存池管理系统,包括内存池的初始化、销毁;内存块的分配、释放。内存块:内存池管理系统的最小资源单位,每个block大小为MEM_BLK_SIZE = 16Bytes;
内存池:预先申请的一块连续内存空间,大小为MEM_POOL_SIZE = n * MEM_BLK_SIZE。
经过若干次申请和释放后,空闲内存不连续。
内存申请:用户在申请内存时,申请的内存大小一定为内存块大小的倍数。
内存池管理系统为用户分配一段空闲的、连续且有指定大小的内存区域,返回指向该区域的指针,找出与用户申请大小最接近的空闲内存区域,分配给用户。出现连续的空闲blcok要合并,分配内存时采用最佳适配策略:
找出与用户申请大小最接近的空闲内存区域。
请哪位同学帮忙讲解一下解题思路,谢谢了。