0
0
CConceptBeginner · 3 min read

What is Memory Leak in C: Explanation and Example

A memory leak in C happens when a program allocates memory using malloc or similar functions but never frees it with free. This causes the program to use more and more memory over time, which can slow down or crash the system.
⚙️

How It Works

Imagine you have a desk where you keep papers. Each time you get a new paper, you put it on the desk. If you never throw away old papers, your desk will get cluttered and you won't have space for new ones. In C programming, memory works similarly. When you ask the computer for memory using malloc, it gives you a space to use. But if you forget to give that space back using free, the computer thinks you still need it.

Over time, if your program keeps asking for memory and never frees it, the computer runs out of free memory. This is called a memory leak. It can make your program slow or cause it to crash because the system has no memory left to use.

💻

Example

This example shows a simple memory leak where memory is allocated but never freed.

c
#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int *)malloc(sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed\n");
        return 1;
    }
    *ptr = 42;
    printf("Value: %d\n", *ptr);
    // Memory is not freed here, causing a memory leak
    return 0;
}
Output
Value: 42
🎯

When to Use

Understanding memory leaks is important when writing programs that run for a long time or handle lots of data, like servers or games. You want to avoid memory leaks to keep your program fast and stable.

Always free memory you no longer need. Use tools like valgrind to find leaks. This helps prevent crashes and keeps your computer running smoothly.

Key Points

  • A memory leak happens when allocated memory is not freed.
  • It wastes system memory and can cause slowdowns or crashes.
  • Always pair malloc with free to avoid leaks.
  • Use debugging tools to detect leaks in your programs.

Key Takeaways

Memory leaks occur when allocated memory is not released with free().
Unfreed memory wastes resources and can crash your program.
Always free memory after use to keep programs efficient.
Use tools like valgrind to detect and fix memory leaks.