作者eeturtur (The End)
看板EE_DSnP
標題Re: [問題] hw3 裡MemMgr某一個function的功能?
時間Sun Nov 27 22:11:41 2005
※ 引述《ric2k1 (Ric)》之銘言:
: ※ 引述《eeturtur (The End)》之銘言:
: : 請問一下老師
: : 如果我們要new一個大小為2^n的array
: : 舉例8個好了
: : 那我們是不是有要多給他一個記憶體 (那就是9個了??)
: : 這個時候memory manager是不是要回給16的記憶體空間呢??
: : (這樣似乎就不符合了在word裡ack#elem和index的規則了??)
: If you do "new A[8]", the req#elem = 9, ack#elem = 16, and the index will be 4.
: I think this is consistent with the Word file, isn't it?
嗯嗯...我發現是我一時糊塗沒想清楚A[8]的意思是 宣告 size 為 8 的array A
所以eq#elem 的確是 8+1 = 9
所以說老師的解釋我就瞭解了^^"
不過我多了一個問題是
什麼是T[1]呢?? 他和 T 有什麼不一樣??
為什麼new T的 req#elem 是1 不是2( 1個sizeof(T)的大小 + 1個多分配給他的 )
老師在 new的alloc中 也的確是是呼叫 getMem(1)
還請教老師一下~
其他的就大致瞭解了:)
謝謝老師m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.242
推 ric2k1:一般應該是不會有人用 new A[1] 的啦. Just in case... 11/27 22:49
→ ric2k1:new T; 不用去記 size... 11/27 22:50
推 eeturtur:喔喔 謝謝老師^^" 11/27 22:54