精華區beta EE_DSnP 關於我們 聯絡資訊
※ 引述《timmylin (Noname)》之銘言: : 標題: [問題] HW3的一點問題...... : 時間: Sun Nov 13 23:28:32 2005 : : : : : 請問一下,在實作Free Memory的相關函式時,對於Recycle的作法 : : 如果我釋放一個Size = 7的Array,那是要把它當成Size = 4處理嗎?? : (因為按照作業的方式,Recycle List只有 1 2 4 8 ...的分類) : : 抱歉上課時這邊沒有聽的很清楚...... : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 218.170.155.145 : → timmylin:阿對了,應該也要把它該拆開... 11/14 00:05 : → timmylin:我是在想如果他原先是從Rycycle List Size = 8出來 11/14 00:07 : → timmylin:那就會浪費空間了 11/14 00:07 照我上課所說的 所有的 memory allocation 大小應該要合 recycle list 規定的大小相符 也就是說 如果 recycle list 只有 1 2 4 8 的分類 由 memory manager 取得 的 memory 大小應該也只有 1 2 4 8 才對 所以 如果你要 --- MyClass* aa = new MyClass[6]; 你應該跟 memory manager 要 8 倍 sizeof(MyClass) 的記憶體 而不是 7 倍 (再麼樣也不會是 6 倍吧) 會遇到 recycle 7 倍 sizeof(MyClass)的情況只有當在 memory block 只剩 7 個 sizeof(MyClass) 的記憶體 而所要的卻超過 7 在這種情況下則必須新開一個 memory block 且把剩下的 7 拆成 (1, 2, 4) 來 recycle -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.137.236
timmylin:喔喔,我原本弄錯了,謝謝老師 11/14 22:40