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

发布于 2024-11-30 04:14:21 字数 67 浏览 1 评论 0原文


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

As memory is considered to be single dimensional, then can anyone kindly tell (and explain) that "How multi-dimesional arrays are represented in Memory".

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

放赐 2024-12-07 04:14:21

这取决于语言实现,但它们通常被表示为一行接一行的连续内存块。
我在我的博客上写了相关内容:

分配的数组作为连续块存储在堆内存中
记忆。二维数组(与上例相同)是
类似地存储 – 存储数组的每一行(索引 x,0 – x,n)
在一起,所以要到达 x,y 单元格,我们必须转到 j + (i *
宽度)位置。

有关如何在 C++ 中实现数组的更多详细信息,请查看:
C++ 注释:二维数组内存布局

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

It depends on the language implementation but more often than not they are represented as a consecutive memory block row after row.
I wrote about it on my blog:

Allocated arrays are stored in the heap memory as a continues chunk of
memory. Two dimensional arrays (same as in the example above) are
stored similarly – each line of the array (index x,0 – x,n) stored
together and so to reach the x,y cell we have to go to the j + (i *
width) place.

For more details on hoiw arrays are implemented in C++ take a look at:
C++ Notes: 2-D Array Memory Layout

Most of the programming languages I encoutered use a similar method to storing multidimensional arrays.

拿命拼未来 2024-12-07 04:14:21

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

Any multidimensional arrays are linearized by array addressing function and transforms the multidimensional arrays into a single dimensional array. This single dimensional arrays are stored on memory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文