作者lunworld ()
看板EE_DSnP
標題Re: [問題] HW3的一點問題......
時間Tue Nov 15 11:12:12 2005
※ 引述《ric2k1 (Ric)》之銘言:
: 照我上課所說的 所有的 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
那照老師的說法
if ((_index + n) > N)
這個敘述是不是也要改一下??
因為如果我們要 6 倍sizeof(MyClass)
而Block剩下 7 倍sizeof(MyClass)
(_index + n) > N 會是false
但是仍然需要做Recycle?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.249.46
推 timmylin:我是呼叫getMem時就把N轉成2的次方了... 11/15 19:06
→ timmylin:不知道有沒有弄錯老師原本的題意??? 11/15 19:07