五、有一個浮點數陣列float A [6] [12] [18];若sizeof ( float ) = 4,且A [5] [9] [17]在記憶體中的位址為FF4A16,元素A [4] [7] [16]的位址為何?(排列方式以列為主)(10分)
詳解 (共 1 筆)
詳解
位址轉換
-
計算 ?[5][9][17]A[5][9][17] 的位址: 給定 ?[5][9][17]A[5][9][17] 的位址為 FF4A16,先計算它的偏移量:
- 第三維度偏移量:17×1=1717×1=17
- 第二維度偏移量:9×18=1629×18=162
- 第一維度偏移量:5×12×18=10805×12×18=1080
總偏移量(以元素計算):17+162+1080=125917+162+1080=1259
-
計算 ?[4][7][16]A[4][7][16] 的偏移量:
- 第三維度偏移量:16×1=1616×1=16
- 第二維度偏移量:7×18=1267×18=126
- 第一維度偏移量:4×12×18=8644×12×18=864
總偏移量(以元素計算):16+126+864=100616+126+864=1006
位址差
- ?[5][9][17]A[5][9][17] 的總偏移量是 1259 個元素。
- ?[4][7][16]A[4][7][16] 的總偏移量是 1006 個元素。
位址差(以元素計算):1259−1006=2531259−1006=253
轉換為位元組:253×4=1012253×4=1012 bytes
計算新的位址
- 給定位址 FF4A16 是以十六進制表示的,轉換為十進制為 6530016。
- 新位址計算:6530016 - 1012 = 6529004
轉換回十六進制:6529004 = FF0A14
結論
元素 ?[4][7][16]A[4][7][16] 的位址為 FF0A14。