看板 EE_DSnP 關於我們 聯絡資訊
class MemRecycleList 的getRecycleList() TODO要求 // find out a recycle list whose "_arrSize" == "n" // If not found, create a new MemRecycleList with _arrSize = n // and add to the last MemRecycleList // So, should never return NULL 我不懂為什麼要create a new MemRecycleList with _arrSize = n 不return NULL 在getMem()要怎麼判斷沒有可以用的recycle記憶體區段而直接 向MemBlock要新的記憶體區段 而且老師自己的code 在getRecycleList()的最後一行就是 return 0; 所以getRecycleList到底可不可以return NULL啊? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.174.136 ※ 編輯: BloodyDuke 來自: 140.112.174.136 (11/25 22:37)
TommyKSHS:我想原本寫的 return 0 是因為要能 compile 11/25 22:59
TommyKSHS:然後 getRecycleList() 並不是用來取得可用 recycle 11/25 23:00
TommyKSHS:的記憶體區段的 而是回傳一個標籤為垃圾長度 = n 的 11/25 23:02
TommyKSHS:MemRecycleList<T>* 11/25 23:02
ric2k1:Tommy 大神所言甚是。另外要補充的是當你要一個垃圾長度是n 11/26 06:07
ric2k1:的 recycle list 時, 如果本來沒有,就會產生一個新的, 11/26 06:07
ric2k1:所以永遠不會空手而回,當然就不應該會有 return NULL 的 11/26 06:08
ric2k1:情形 11/26 06:08
tomap41017:推!不過我現在寫有一個情況會return 0就是new MemRList 11/27 01:01
tomap41017:throw出std::bad_alloc時會有~這樣子OK嗎? 11/27 01:02