作者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
1F:推 ric2k1:谢谢! 希望配合讲义与 ref code 大家可以搞懂... 04/29 22:41
2F:推 hoghcmkcm:喔喔! Obj1 Obj2在记忆体上是连续的吗? 04/29 22:46
3F:→ trancewu:不是连续的 04/29 22:48
4F:推 hoghcmkcm:那Obj1 要怎样指到 Obj2? 还有怎样知道指到底了? 谢~ 04/29 22:54
5F:→ trancewu:指到底就是如果指标是null pointer 04/29 23:27