由于内存被认为是一维的,那么任何人都可以告诉(并解释)“内存中如何表示多维数组”。
提前致谢。
问问题
4074 次
2 回答
1
这取决于语言实现,但通常它们被表示为一行接一行的连续内存块。我在我的博客上写过:
分配的数组作为连续的内存块存储在堆内存中。二维数组(与上面的示例相同)以类似方式存储 - 数组的每一行(索引 x,0 – x,n)存储在一起,因此要到达 x,y 单元格,我们必须转到 j + ( i * 宽度)的地方。
有关在 C++ 中实现的 hoiw 数组的更多详细信息,请查看: C++ Notes: 2-D Array Memory Layout
我遇到的大多数编程语言都使用类似的方法来存储多维数组。
于 2011-08-16T06:40:42.940 回答
0
任何多维数组都通过数组寻址函数线性化,并将多维数组转换为一维数组。这个一维数组存储在内存中。
于 2014-03-10T08:57:19.793 回答