Answer
A memory leak occurs when heap memory is allocated but never freed, so it remains reserved for the program's lifetime, gradually exhausting available memory. Leaks happen when a delete is missed, a pointer is overwritten before freeing, or an exception skips the cleanup. RAII/smart pointers prevent most leaks.
int* p = new int(1);
p = new int(2); // first allocation leakedReal-world example A long-running server slowly consumes all memory because a handler forgets to free per-request buffers.