作者moonjustin (快點放長假吧@@)
看板EE_DSnP
標題Re: [問題] alocArray,freeArray
時間Mon Dec 11 11:30:42 2006
※ 引述《ric2k1 (Ric)》之銘言:
: ※ 引述《EEmuse2 (忘了密碼)》之銘言:
: : 應該說 new v.s. new[]都是傳入 alloc(t),allocArray(t),但我不太瞭解
: : alloc(t)是不是說系統自動要求要一個物件大小t的空間,而allocArray(t)
: : 傳入的東西又是什麼?是指幾個物件??
: 對 function "operator new[] (size_t t)", 系統會自動計算出所需記憶體的 #Bytes
~~~~ ~~~~
請問一下為什麼是系統自動計算呢?
這次作業不就是要全權自己分配記憶體嗎?
所以不是要自己算?
: That is, t = sizeof(T) * n + 4, where T is the class to new, and n is the
: size of array (i.e. new T[n])
: : 有點不知道allocArray和freeArray怎樣動手...
: 系統在執行完 new[] 之後, 會將 n 存在 allocated memory 的最前面 4 個 Byte (i.e.
~~ ~~~~~~~~~~~~~~~~~
這個n不是要自己存進去嗎?
因為不是要自己分配記憶體的用途?
: 大小 = sizeof(size_t)).
: 至於如何看到 n, 此乃本作業的重點之ㄧ, 你可以參考 post #240.
n不是要自己偷存進去前4byte就好?
謝謝^^"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.218.0.112
推 ric2k1:I will suggest you to play around with newOp.cpp... 12/11 12:06
→ ric2k1:n 是系統自己幫你存的, 而且是在 new[]() 結束之後 12/11 12:06
→ ric2k1:所以即使你在 new []() 存了 n, 系統仍然會再存一次 12/11 12:07
→ ric2k1:這次作業是要你們 "根據系統傳給你們的 t, 來自分配記憶體" 12/11 12:08
→ ric2k1:Once again, new [] (t) 裡面的 t 也不是你們可以控制的 12/11 12:10