多维数组如何在内存中表示

时间:2011-08-16 06:35:14

标签: memory multidimensional-array representation


由于内存被认为是单维的,那么任何人都可以告诉(并解释)“如何在内存中表示多维数组”。
提前谢谢。

2 个答案:

答案 0 :(得分:1)

它取决于语言实现,但通常它们被表示为一行一行的连续内存块。 我在my blog上写了这篇文章:

  

分配的数组作为一个继续的块存储在堆内存中   记忆。二维阵列(与上面的例子中相同)是   类似地存储 - 存储数组的每一行(索引x,0 - x,n)   一起到达x,y小区我们必须去j +(i *   宽度)。

有关使用C ++实现的hoiw数组的更多详细信息,请参阅: C++ Notes: 2-D Array Memory Layout

我所使用的大多数编程语言都使用类似的方法来存储多维数组。

答案 1 :(得分:0)

任何多维数组都通过数组寻址函数进行线性化,并将多维数组转换为单维数组。这个单维数组存储在内存中。