作者ric2k1 (Ric)
看板EE_DSnP
標題Re: [問題] alloc和allocArr
時間Tue May 5 21:09:24 2009
: 所以我們除了去挖出array前面一個size_t的數字來用以外
: 都不用煩惱array前面那個記憶體位置嗎?
array 前面那個 4/8B 的記憶體當然也要一起 recycle 啊!
只是當你 overload 的 "delete [] (T* p)" 被外面的 "delete [] p" 呼叫時,
compiler 已經自動的將 overloaded function 中 p 的 address 設成 外面的
p - 4/8, 這個是你不用管的.
: 是不是就當作系統沒有做這回事來寫就可以了?
: 那如果是recycleList[15]
: 他回收的memory是全長15 前4/8B存下個ELM的地址
: 還是全長15+4/8B 多加的長度存下個ELM的地址?
為什麼是 (15 + 4) B 呢? 應該是 (15 * S + 4) B 吧? (其中 S = sizeof(T))
而且因為我們規定 recycle 的 memory 一定要是 SIZE_T 的倍數, 所以實際
recycle 的記憶體應該是: toSizeT(15 * S + 4) Bytes
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.45.41
1F:推 ptt6161180:原來是這樣喔!!我們誤解了很久...與認知有很多誤差... 05/06 01:11