原理很簡單,就是先開辟n個數(shù)據(jù)塊,每個數(shù)據(jù)塊的前四個字節(jié)next_id表示下一個可用的數(shù)據(jù)塊的編號。該內(nèi)存池類中有一個成員m_firstId, 表示第一個可用的數(shù)據(jù)塊的編號,然后在申請內(nèi)存的時候,根據(jù)這個編號,返回對應(yīng)的數(shù)據(jù)塊的地址。在將申請的內(nèi)存塊A歸還給內(nèi)存池時,根據(jù)其地址確定其所在的內(nèi)存塊編號。然后將該內(nèi)存塊的next_id改為m_firstId,將m_firstId改為該內(nèi)存塊的id。
Mempool.h
運用實例
|
|