看板 EE_DSnP 關於我們 聯絡資訊
記憶體應該不是連續的, 假設今天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)
ric2k1:沒錯! 辛苦了. 重點是要知道如何將 Obj1 的前4個 Bytes 04/29 23:14
ric2k1:改成 Obj2 的位址 04/29 23:17
hoghcmkcm:喔喔!! 真是太用心回答了!! 04/30 13:45