Memory leaks are a consequence of a common error in programming, especially when programming in languages that have no garbage collection.

Memory leaks occur when a program (thanks to an error made by the programmer) fails to release allocated computer memory to the system handling physical memory, which is usually an operating system, resulting in an ever growing amount of memory being used. Eventually, the program is given all the available memory and the rest of the system will stop working correctly.

This is a common problem of C and C++, so many tools exist to help detect these problems in C.