自由表

自由表（）是一种用来实现特定动态内存分配方案的数据结构，也称自由列表。自由表的核心原理是将若干未分配的内存块用链表连接起来，将未分配区域的第一个字作为指向下一个未分配区域的指针使用。自由表非常适合用来实现内存池，因为内存池中对象的大小都是相同的。

用自由表实现内存的分配和回收非常简单：回收内存时只需将内存块链入自由表；分配时也只需从自由表的一端取下即可直接使用。如果内存块的大小不一，则分配前还需要在自由表中搜索足够大的内存块，可能有一定的额外消耗。

因为自由表使用了链表结构，所以也继承了它的劣势：访问局部性低下，难以利用缓存。

另见

参考资料 

数据结构
記憶體管理