Да, это стандартное поведение.
- Стек: Хранит локальные переменные и указатели (ссылки) на объекты. Время жизни данных в стеке привязано к scope (области видимости) функции или блока кода. Доступ к данным быстрый.
- Куча (Heap): Хранит объекты, созданные динамически. Время жизни данных в куче не привязано к scope и управляется механизмом управления памятью (ARC в iOS). Доступ к данным медленнее, чем в стеке.
Когда мы создаем объект класса в Swift (например), сам объект размещается в куче. Переменная, которую мы объявляем для хранения этого объекта, по сути, является ссылкой (указателем) на данные в куче и хранится в стеке.
Пример на Swift:
swift
Да, это стандартное поведение.
- Стек: Хранит локальные переменные и указатели (ссылки) на объекты. Время жизни данных в стеке привязано к scope (области видимости) функции или блока кода. Доступ к данным быстрый.
- Куча (Heap): Хранит объекты, созданные динамически. Время жизни данных в куче не привязано к scope и управляется механизмом управления памятью (ARC в iOS). Доступ к данным медленнее, чем в стеке.
Когда мы создаем объект класса в Swift (например), сам объект размещается в куче. Переменная, которую мы объявляем для хранения этого объекта, по сути, является ссылкой (указателем) на данные в куче и хранится в стеке.
Пример на Swift:
swift