Re: [問題] hw4再一問

看板EE_DSnP作者 (Ric)時間16年前 (2008/04/27 20:46), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《BattleRoyale (翔燄)》之銘言: : while (i < R_SIZE) { : const MemRecycleList<T>* ll = &(_recycleList[i]); : while (ll != 0) { : size_t s = ll->getSize(); : if (s) { : cout << "[" << setw(3) << right << ll->_arrSize << "] : = "<< setw(10) << left << s; : if (++count % 4 == 0) cout << endl; } : ll = ll->_nextList; : : } : ++i; } : : 這是在MemMgr.h中的一小段... : 對於ll有點不太懂@@" : : 在第二行它指向了 &(_recycleList[i])的位址 在 MemMgr 裏面 _recycleList[] 是用 object array 來存, 所以一開始 ll = &(_recycleList[i]) 一定不會 = 0 (NULL) <== 就是存 _recycleList[i] 的位址 : 請問ll!=0是什麼意思呢? 它既然是個pointer 裡面應該存的是位址 : 那什麼時間ll會=0離開while迴圈呢 : : 另外...也不太懂ll = ll->_nextList的意思 : 因為&_recycleList[i]已經代表指向現在0~255的RecycleList了 : 所以_nextList就是投影片教的指向超過255(也就是%256的recyclist囉?) : 至於 ll->_nextList, 請參見 class MemRecycleList 的 data member, Yes, 就是其他 %256 = i 的 recycle list. 這些 (_arrSize % 256) 相同的 lists 是用 linked list 方式串起來, 而最後會放 0 以示結尾. That's why "while (ll != 0)"... : 麻煩老師了<(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.132.230

04/29 09:42, , 1F
瞭解 謝謝教授
04/29 09:42, 1F
文章代碼(AID): #1857MwM- (EE_DSnP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1857MwM- (EE_DSnP)