Как многомерные массивы представлены в памяти - PullRequest
1 голос
/ 16 августа 2011


Поскольку память считается одномерной, любой может любезно сказать (и объяснить), что «Как многомерные массивы представлены в памяти».
Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Это зависит от языковой реализации, но чаще всего они представляются в виде последовательного блока памяти строка за строкой.Я написал об этом в моем блоге :

Выделенные массивы хранятся в динамической памяти как непрерывный кусок памяти.Двумерные массивы (такие же, как в примере выше) хранятся аналогично - каждая строка массива (индекс x, 0 - x, n) хранится вместе, поэтому для достижения ячейки x, y мы должны перейти к j + (i * width) place.

Для получения дополнительной информации о реализации массивов hoiw в C ++ посмотрите: C ++ Примечания: 2-D Layout Memory Layout

Большинство языков программирования, которые я предположил, используют аналогичный метод для хранения многомерных массивов.

0 голосов
/ 10 марта 2014

Любые многомерные массивы линеаризуются функцией адресации массива и преобразуют многомерные массивы в одномерный массив.Эти одномерные массивы хранятся в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...