作者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