Назад к вопросам
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).