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.