有一个阵列[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
@确定,如果它们不同,那么何时使用哪个公式? –