作者BloodyDuke (個巴樂)
看板EE_DSnP
標題[問題] getRecycleList()
時間Thu Nov 25 22:36:47 2010
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)
1F:推 TommyKSHS:我想原本寫的 return 0 是因為要能 compile 11/25 22:59
2F:→ TommyKSHS:然後 getRecycleList() 並不是用來取得可用 recycle 11/25 23:00
3F:→ TommyKSHS:的記憶體區段的 而是回傳一個標籤為垃圾長度 = n 的 11/25 23:02
4F:→ TommyKSHS:MemRecycleList<T>* 11/25 23:02
5F:推 ric2k1:Tommy 大神所言甚是。另外要補充的是當你要一個垃圾長度是n 11/26 06:07
6F:→ ric2k1:的 recycle list 時, 如果本來沒有,就會產生一個新的, 11/26 06:07
7F:→ ric2k1:所以永遠不會空手而回,當然就不應該會有 return NULL 的 11/26 06:08
8F:→ ric2k1:情形 11/26 06:08
9F:推 tomap41017:推!不過我現在寫有一個情況會return 0就是new MemRList 11/27 01:01
10F:→ tomap41017:throw出std::bad_alloc時會有~這樣子OK嗎? 11/27 01:02