23 下列數字均為十進位表示法:一個以 C 語言構造的 row major(以列為主)
的三維陣列如下:int M[4][5][6];其中依據微軟設計,每一個 int 的大小占 4 byte。如果 M[1][2][3]所在記憶體位址是 200~203,則 M[3][2][1]所在位 址為何?
(A) 432~435
(B) 472~475
(C) 364~367
(D) 128~131
答案:登入後查看
統計: A(236), B(87), C(84), D(37), E(0) #2687573
統計: A(236), B(87), C(84), D(37), E(0) #2687573
詳解 (共 4 筆)
#5420572
row major三維陣列計算公式
陣列大小為A[u1][u2][u3]
起始陣列為A1[i1][j1][k1],目標陣列為A2[i2][j2][k2],d則為每一個int佔的大小
[(i2-i1)×u2u3 + (j2-j1)×u3 + (k2-k1)]×d
=[(3-1)×5×6 + (2-2)×6 + (1-3)]×4
=[60+0+(-2)]×4
=58×4=232
然後 所在記憶體位址+距離=(200~203)+232=432~435
2
0