看板 EE_DSnP 關於我們 聯絡資訊
※ 引述《bumpwy (bumpwy)》之銘言: : 我覺得我可能是問一個蠢問題 : 就是關於freeArrr裡面,老師要我們assume that n==getRecycleIdx(..) : 所以我就不是很知道到底要不要處理n和n+R_SIZE 這種餘數的問題 : 因為我函數裡面有處理餘數的問題 : 還是說這樣的假設有別的意思? 搞了很久還是不知道這個function該怎麼作用耶? 囧 assert(n == getRecycleIdx(n * S + SIZE_T)); 對這行我有幾個解讀: 1. n 在註解中的定義是array size, 因此 n 是可以超過255的 2. getRecycleIdx要回傳的東西我看不懂ˊˋ 字面上我直覺的解讀是要回傳_recycleList的index: 0-255 可是這樣就和第一點矛盾了 3. 丟進去的是array的size以及array前置記憶體的長度(?) 第三點不知道該怎麼解讀...為什麼我丟進去array所佔的記憶體空間會回傳index啊? 首先這也不一定真的是array真正所佔的記憶體空間 因為在getMem中,如果丟進來的記憶體不是4/8 bit 的話 就要給稍大於array的空間讓其整除於4/8 bit 若要說丟進來一個數字要回傳index 那就是mod S 算出array的長度,然後再mod 255 之後回傳 可是這就跟丟進來的東西一樣啊... 還是說有什麼別的辦法可以由記憶體算出他所在的_recycleList? 囧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.234
a3785lexx:丟進去的,是系統塞給new[]的size_t t??小弟淺見XD 11/24 22:43
a3785lexx:我想大概就是要用後見之明去算出這個t所暗示的array 11/24 22:43
a3785lexx:的element數量XD? 11/24 22:43
a3785lexx:最少我這樣寫好像還沒有出包....僅供參考XD 11/24 22:44
dryman:是丟進去getMem之前的array size 沒錯... 11/24 22:53
ric2k1:n 以及 getRecycleIdx() 都可能 > 255 11/24 23:05
ric2k1:它應該等於存在 -SIZE_T 位置的數字 11/24 23:06
dryman:請問老師的第二句是什麼意思啊@ @" 11/25 00:43
dryman:-SIZE_T在哪裡? <囧> 11/25 00:45
ric2k1:就是偷偷存起來的 array 大小 11/25 00:45