Sobes.tech
Назад к вопросам
Junior — Middle
94

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

Компании, где спрашивали
Lamoda Tech

Ответ от нейросети

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).