地特三等申論題
105年
[資訊處理] 資料結構
第 一 題
📖 題組:
有一浮點數三維陣列(three dimensional array)float A [6] [7] [10];假設 sizeof(float)=4: (一)請問此陣列共佔多少位元組?(10 分) (二)若 A[0][0][0] 在記憶體中的位址為 03C4_16,則元素 A[5] [2] [9] 的位址為何?(15 分)
有一浮點數三維陣列(three dimensional array)float A [6] [7] [10];假設 sizeof(float)=4: (一)請問此陣列共佔多少位元組?(10 分) (二)若 A[0][0][0] 在記憶體中的位址為 03C4_16,則元素 A[5] [2] [9] 的位址為何?(15 分)
📝 此題為申論題,共 2 小題
小題 (一)
請問此陣列共佔多少位元組?(10 分)
思路引導 VIP
計算多維陣列的記憶體總大小,關鍵在於先求出陣列的「總元素個數」(將各維度長度相乘),接著再乘上「單一元素所佔的位元組大小(bytes)」。
小題 (二)
若 A[0][0][0] 在記憶體中的位址為 03C4_16,則元素 A[5] [2] [9] 的位址為何?(15 分)
思路引導 VIP
看到三維陣列位址計算題,應優先確定「陣列維度大小」、「目標索引值」、「元素所佔位元組」及「記憶體排列方式(題目採C語言宣告,預設為以列為主 Row-Major)」。接著算出目標元素距離起始元素的「個數偏移量」,乘上「元素大小」得出總位元組偏移量,最後將其轉為 16 進位並與起始位址相加求得答案。