自由表

自由表  是一種用來實現特定動態內存分配方案的數據結構 ， 也稱自由列表 。 自由表的核心原理是將若干未分配的內存塊用鏈表連接起來 ， 將未分配區域的第一個字作爲指向下一個未分配區域的指針使用 。 自由表非常適合用來實現內存池 ， 因爲內存池中對象的大小都是相同的 。 用自由表實現內存的分配和回收非常簡單 ： 回收內存時只需將內存塊鏈入自由表 ； 分配時也只需從自由表的一端取下即可直接使用 。 如果內存塊的大小不一 ， 則分配前還需要在自由表中搜索足夠大的內存塊 ， 可能有一定的額外消耗 。 因爲自由表使用了鏈表結構 ， 所以也繼承了它的劣勢 ： 訪問局部性低下 ， 難以利用緩存 。