Dynamic Memory Allocation with Pointers
Used to allocate memory during runtime using:
- new and delete operators (modern C++)
int *p = new int; // allocation
*p = 10;
delete p; // deallocation
- For arrays:
int *arr = new int[5];
delete[] arr;
Prevents memory wastage and improves flexibility.
Smart Pointers (C++11)
Modern replacement for raw pointers to avoid memory leaks.
- unique_ptr: Owns the object and deletes it when out of scope.
#include <memory>
std::unique_ptr<int> p(new int(10));
- shared_ptr: Shared ownership among multiple pointers.
std::shared_ptr<int> sp1 = std::make_shared<int>(10);
- weak_ptr: Used with shared_ptr to avoid circular references.