Sobes.tech
Junior — Middle
125

Как организована структура массива в памяти и как происходит доступ к его элементам?

Сұралған компаниялар
Lamoda Tech

AI-дан жауап

sobes.tech AI

В Go массивы — это последовательные блоки памяти, где элементы хранятся подряд друг за другом. Каждый элемент занимает фиксированный размер, зависящий от типа данных.

Доступ к элементу массива происходит через вычисление адреса: базовый адрес массива плюс смещение, равное индексу элемента, умноженному на размер элемента. Это обеспечивает быстрый доступ к любому элементу по индексу за константное время.

Пример:

var arr [5]int = [5]int{10, 20, 30, 40, 50}
// arr хранится в памяти как последовательность 5 целых чисел
fmt.Println(arr[2]) // Выведет 30

Здесь arr[2] — это элемент с индексом 2, адрес которого вычисляется как адрес начала массива + 2 * sizeof(int).