Какой размер у shared_ptr?

Экземпляр std::sharedptr обычно требует памяти для хранения:

Короткий ответ

Что ответить на собеседовании

Экземпляр std::sharedptr обычно требует памяти для хранения:

Подробный разбор

Ответ с пояснениями

Экземпляр std::shared_ptr обычно требует памяти для хранения:

  • Указателя на управляемый объект.
  • Указателя на блок управления (control block), который содержит счетчики ссылок (shared и weak) и, возможно, дополнительные данные (например, кастомный делитер).

Размер самого объекта std::shared_ptr обычно равен размеру одного указателя (например, 8 байт на 64-битных системах), но при первом создании выделяется отдельный блок управления, который занимает дополнительную память (обычно несколько десятков байт).

Таким образом, std::shared_ptr сам по себе занимает мало памяти, но общий расход памяти зависит от размера блока управления и управляемого объекта.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку