Работа с динамической памятью в C++ требует внимательности, особенно при разработке больших программ. Сегодня рассмотрим 3 варианта как не испортить свой скрипт :0
1 — Использование умных указателей:
Такие указатели, как
std::unique_ptr
и std::shared_ptr
, помогают автоматизировать очистку памяти. При использовании std::unique_ptr
, объект удаляется автоматически при выходе из области видимости, что предотвращает возможной утечки:#include <memory>
std::unique_ptr<int> ptr = std::make_unique<int>(10);
std::cout << *ptr; // вывод: 10
Этот подход подходит для простых случаев, когда объект имеет одного владельца
2 — Освобождение памяти:
При динамическом выделении важно вручную освобождать память с помощью
delete
и delete[]
если вам не лень, конечно. А если серьезно, то delete
освобождает память только из под указателя ;)int* arr = new int[10];
delete[] arr; // правильное удаление массива
3 — Ну и если у вас есть висячие указатели:
В таком случае вам нужно будет обнулить указатель, дабы избежать случайного доступа к нему, на самом деле полезно:
int* ptr = new int(5);
delete ptr;
ptr = nullptr; // обнуление
С тебя 🔥 если зашел пост и делись мнением в комментах!