Работа с памятью при использовании массивов происходит следующим образом:
- Массив представляется цельным куском памяти. 3 Размер этого куска вычисляется по формуле: количество элементов * количество памяти под каждый элемент. 3
- Все элементы массива имеют один тип и занимают одно и то же количество памяти. 3 Благодаря этому при обращении к элементу массива под определённым индексом можно получить адрес ячейки, в которой лежит нужный элемент. 3
- Индекс в массиве — это смещение относительно начала куска памяти, содержащего данные массива. 3 Адрес, по которому расположен элемент под конкретным индексом, рассчитывается так: начальный адрес + индекс * количество памяти, занимаемое одним элементом (для данного типа данных). 3
- При статическом объявлении память под массив выделяется в стеке, массив является локальной переменной и будет уничтожен по правилам локальных переменных. 4 При динамическом объявлении память выделяется в куче программы — её ещё называют динамической памятью, управление ею лежит на программисте. 4
Для доступа к данным в динамически выделенной памяти используются указатели — переменные, содержащие адрес ячейки памяти. 1