Memory leak occurs in your program when you are allocating memory dynamically(this memory is allocated on heap by operating system when you are calling malloc or calloc in C) and you forget to deallocate that memory. Now this memory will be called as "memory leak" .
Example:

int main()
{
int *p1 = (int *)malloc(10);
}
If your program will go out of scope of integer pointer p1 then memory allocated by pointer p1 will be leak. because you did'nt call free(p1) function.