Перейти к содержимому

Никогда не освобождайте память самостоятельно! Вместо этого сделайте следующее (в современном C++).

Code for yourself

0:00 / 0:00

Никогда не освобождайте память самостоятельно! Вместо этого сделайте следующее (в современном C++).

4 352 просмотра · 2 г. назад
Code for yourself
6,82 тыс. подписчиков
4 352 просмотра · 2 г. назад
Помогите мне продолжать делать эти видео! Этот проект работает только благодаря вашей поддержке! Вы можете продемонстрировать это одним из следующих способов: 📚 Начать БЕСПЛАТНЫЙ пробный период Audible: https://www.audibletrial.com/CodeForY... 🛍️ Купить оборудование, которое я использую для создания этого видео: https://github.com/cpp-for-yourself/s... 💶 Стать спонсором напрямую на GitHub: https://github.com/sponsors/niosus 📺 Смотреть мои видео до конца и оставлять комментарии ⁉️ Найти свой способ поддержать эту работу можно здесь: https://github.com/cpp-for-yourself/s... Пожалуй, это самое важное видео для понимания того, как выделяется память в C++. Более того, мы рассмотрим не только, как выделить память вручную, но и как это позволяет C++ работать так быстро, а также как сделать это безопасно в современном C++. Мы рассмотрим ⏺ Что такое управление памятью ⏺ Почему сборка мусора — не лучший вариант ⏺ Что такое стек и как он обеспечивает быстрое выделение и освобождение памяти для небольших переменных ⏺ Почему стек плохо подходит для постоянных данных ⏺ Что такое куча и как она полезна для выделения памяти для постоянных данных ⏺ Какие проблемы могут возникнуть при ручном выделении памяти ⏺ Как умные указатели позволяют безопасно выделять память 📚 Ссылка на скрипт к этому видео на GitHub: https://github.com/cpp-for-yourself/s... 🔗 Ссылки ⏺ Сборка мусора в Java: https://dzone.com/articles/choosing-t... ⏺ Уникальный указатель: https://en.cppreference.com/w/cpp/mem... ⏺ Общий указатель: https://en.cppreference.com/w/cpp/mem... ⏺ Изображения монет взяты с сайта pexels.com ⏺ Изображение Дональда Кнута взято из Википедии ⏺ Изображение сборки мусора: https://w3schoolsua.github.io/svg/gar... Содержание 00:00 - Начало 00:25 - Что такое управление памятью 02:10 - Почему C++ так хорош 04:02 - Выделение и освобождение памяти 05:07 - Стек 06:18 - Практический пример работы со стеком 08:06 - Почему не выделять постоянные данные в стеке 09:42 - Куча 12:37 - Практический пример работы со стеком пример 13:43 — Проблемы с ручным выделением памяти 18:45 — Умные указатели Исправления: 8:24 В этом примере много проблем: не только это не совсем C++, поскольку динамически изменяемые массивы в стиле C — это расширение компилятора, а не часть языка, но и в нём отсутствует include для std::byte. Это просто для иллюстрации того, как мы можем переполнить стек. #cplusplus #программирование #кодирование #руководство