作者trancewu (exile me)
看板EE_DSnP
標題Re: [問題] hw4 recyclelist
時間Tue Apr 29 23:05:28 2008
記憶體應該不是連續的,
假設今天MemBlock size是50,
今天有兩個Obj1 Obj2 和兩個Obj1[2] Obj2[2]
而且在記憶體配置上是這樣
┌───┬─────────┬───┐
│Obj1 │ Obj1[2] │用不到│MemBlock1
└───┴─────────┴───┘
┌───┬─────────┬───┐
│Obj2 │ Obj2[2] │用不到│MemBlock2
└───┴─────────┴───┘
如果我們先後刪除Obj2 Obj1
這樣會變成
MemMgr::_recycleList[0]中的_first指向Obj1,
Obj1前四個byte用來指向Obj2,如下
_first ┐
│
↓
┌───┬─────────┬───┐
┌─│delete│ Obj1[2] │用不到│MemBlock1
│ └───┴─────────┴───┘
│
│ ┌───┬─────────┬───┐
└→│delete│ Obj2[2] │用不到│MemBlock2
└───┴─────────┴───┘
應該是這樣吧@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.251.153
※ 編輯: trancewu 來自: 140.112.251.153 (04/29 23:06)
1F:推 ric2k1:沒錯! 辛苦了. 重點是要知道如何將 Obj1 的前4個 Bytes 04/29 23:14
2F:→ ric2k1:改成 Obj2 的位址 04/29 23:17
3F:推 hoghcmkcm:喔喔!! 真是太用心回答了!! 04/30 13:45