精華區beta EE_DSnP 關於我們 聯絡資訊
※ 引述《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