作者trancewu (exile me)
看板EE_DSnP
標題Re: [問題] hw4 recyclelist
時間Tue Apr 29 22:17:21 2008
在MemMgr data member中有MemRecycleList<T> _recycleList[R_SIZE]
所以在裡面有一個size是256的array,存放MemRecycleList<T> 物件。
而每個MemRecycleList物件有三個data member
_arraySize 這是這MemRecycleList存放物件的大小
_first 指向第一個存放的物件
_nextList 指向下一個MemRecycleList(因為我們把大小mod 256之後存放)
而回收的物件我們利用最前面四個byte做為指標只到下一個同大小的物件。
如果今天是兩個大小是0的物件 Obj1 Obj2,會這樣存放
_recycleList[0] -> MemRecycleList
_arraySize = 0
_first -> Obj1 -> Obj2
_nextList -> null
這時候如果加入一個size是256的物件 Obj3 Obj4,
會變成
_recycleList[0] -> MemRecycleList
_arraySize = 0
_first -> Obj1 -> Obj2
_nextList -> MemRecycleList
_arraySize = 256
_first -> Obj3 -> Obj4
_nextList -> null
不是很會畫圖...
不知道這樣看不看得懂@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.251.153
推 ric2k1:謝謝! 希望配合講義與 ref code 大家可以搞懂... 04/29 22:41
推 hoghcmkcm:喔喔! Obj1 Obj2在記憶體上是連續的嗎? 04/29 22:46
→ trancewu:不是連續的 04/29 22:48
推 hoghcmkcm:那Obj1 要怎樣指到 Obj2? 還有怎樣知道指到底了? 謝~ 04/29 22:54
→ trancewu:指到底就是如果指標是null pointer 04/29 23:27