Re: [問題] hw4再一問
※ 引述《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
討論串 (同標題文章)