Структура списка Arr: чтение схемы размещения данных
Схема структуры списка Arr: вертикальный блок Data 80 байт, стрелки к горизонтальным блокам Var1, Var2, VarN и синие пометки смещений VarType.

Назначение схемы
Схема с заголовком «Структура списка Arr» показывает, как наглядно изображается внутреннее устройство одномерного массива в справочных материалах. Её задача не в том, чтобы описать актуальный формат памяти или гарантировать поведение конкретной реализации, а в том, чтобы дать читателю способ читать подобные диаграммы: где лежит заголовок, где элементы и как связаны их адреса. Важно различать два понятия, которые на схеме изображены отдельно: позиции в таблице метаданных и отдельно нарисованные блоки данных. Из одной диаграммы не следует, что элементы списка обязательно размещаются последовательно в памяти.
Что изображено на схеме
Вертикальный зелёный блок подписан «Data 80 bytes». От него отходят стрелки к трём горизонтальным зелёным блокам, подписанным «Data 80 bytes» и связанным с Var1, Var2 и VarN. Рядом со стрелками стоят синие пометки: «VarType +0», «VarType +8» и «VarType 8*N». В верхней части схемы видны поля MsF1 и MsF2; их назначение на самой диаграмме не расшифровано. Всё, что можно утверждать, ограничивается этими видимыми подписями.
Как читать пометки смещений
Синие подписи указывают смещения в таблице метаданных: VarType +0, VarType +8 и VarType 8*N. Это позиции записей о переменных, а не доказательство того, что каждый элемент данных занимает восемь байт, что восемь байт равны ширине указателя или что N имеет проверенный способ индексации. Смещение слота в таблице и размер полезной нагрузки элемента — разные величины. На схеме данные изображены отдельными блоками «Data 80 bytes», и из этого видно лишь подписанный размер блоков, но не правило размещения элементов в памяти.
Границы выводов
Диаграмма является схемой, а не снимком реальной памяти и не подтверждённым описанием текущего формата. Она не устанавливает, что все элементы списка обязаны иметь одинаковый тип, не описывает порядок вставки, алгоритм изменения размера, сложность операций или поведение при ошибках. Поля MsF1 и MsF2 присутствуют на картинке, но их смысл остаётся неопределённым. Любые утверждения о конкретных функциях, сигнатурах или производительности выходят за пределы того, что видно на схеме.
Концептуальный пример
Представим вымышленную таблицу метаданных с четырьмя записями и принятым шагом восемь байт, нумерация с нуля. Индекс 0 лежит на смещении 0, индекс 1 — на 8, индекс 2 — на 16, индекс 3 — на 24 от неопределённого начала таблицы. Третий элемент имеет индекс 2 и смещение 16, а не 8*3. Эта таблица иллюстрирует только арифметику смещений в воображаемой структуре; она не описывает реализацию списка Arr, не связывает смещения с размерами блоков данных и не утверждает ничего о текущем формате памяти.