有一個陣列[3] [4]和我們必須找到的一個[2] [2]使用行優先順序和1001作爲基地址地址。我發現兩個公式找到了該地址:查找2D陣列單元存儲器位置
For any array a[M][N] Row Major Order:
1) a[i][j] = Base Address+Datatype Size[(N*i)+j]
2) a[i][j] = Base Address+Datatype Size[N*(i-1)+(j-1)]
我試用過的公式,但第一個得到正確的結果,但沒有第二個。這裏是我發現了一個[2] [2]使用行優先順序的地址:
Using Formula 1:
a[2][2] = 1001+2[(4*2)+2]
= 1001+2[10]
= 1001+20
= 1021 (correct answer)
Using Formula 2:
a[2][2] = 1001+2[4*(2-1)+(2-1)]
= 1001+2[4+1]
= 1001+2[5]
= 1001+10
= 1011 (Wrong Answer)
有沒有在我的第二個公式的任何錯誤或有我做錯了使用第二個公式計算?爲什麼兩個答案都不一樣?
的列數它們都如何能夠正確?他們嚴格**不同**! – Amit
@確定,如果它們不同,那麼何時使用哪個公式? –