实现动态内存分配要考虑以下问题:

空闲块组织:如何记录空闲块?

放置:如何选择一个合适的空闲块来放置一个新分配的块?

分割:将一个新分配的块放置到某个空闲块之后,如何处理这个空闲块中的剩余部分?

合并:如何处理一个刚刚被释放的块?

通过在每个块的头部存放信息可以方便的定位到写一个块的位置,以及本块的大小和使用情况。本块的起始地址加上本块的大小就是下一个块的起始地址。

struct mem_control_block{
    int is_available;
    int size;
}

空闲链表怎么节省存储链接的空间?

posted on 2020-03-02 15:23  xiaobaizzZ  阅读(457)  评论(0编辑  收藏  举报