3维数组中的元素地址

Roh*_*egi 5 arrays data-structures

我正在寻找公式来查找 3-D 数组中元素的内存位置,用于行主要和列主要。使用我的逻辑后,我最终得到以下公式。说数组是A[L][M][N]

行优先:Loc(A[i][j][k])=base+w(M*N(i-x)+N*(j-y)+(k-z))
列优先:Loc(A[i][j][k])=base+w(M*n(i-x)+M*(k-z)+(j-y))

其中 x、y、z 是 1st(L)、2nd(M) 和 3rd(N) 索引的下限。我尝试了这个公式并得到了正确的结果,但是当我将这个公式应用于书中的一个问题时,答案并不匹配。请任何人都可以帮我解决这个问题。

小智 6

3D 数组的公式

行主要顺序:

地址

A[I, J, K] = B + W * [(D - Do ) *RC + (I - R o )*C + (J - Co ) ]

栏目主要顺序:

地址

A[I, J, K] = B + W * [(D - Do ) *RC + (I - R o ) + (J - Co ) *R]

在哪里:

  • B = 基址(起始地址)
  • W = 权重(数组中存储的一个元素的存储大小)
  • R = 行(总行数)
  • C = 列(列总数)
  • D = 宽度(深度方向的单元总数)
  • Ro =行的下界
  • Co =列的下界
  • Do =宽度下限

  • 以下是[如何写出好的答案?](https://stackoverflow.com/help/how-to-answer) 的一些指南。这个提供的答案可能是正确的,但它可能会受益于解释。仅代码答案不被视为“好”答案。来自[评论](https://stackoverflow.com/review)。 (2认同)