When a program gets executed, it uses memory. In some cases, a poorely-written program may incorrectly manage the memory that has been given to it. As a consequence, the memory that was actually supposed to be reused after the program has finished its job cannot be accessed again. This is known as a memory leak.
One of the most common reasons for memory leaks is the program not giving its memory back after it has finished execution.
Memory leaks may result in several issues such as degradation of performance and systems being unresponsive.