Back to Course
Pointers & Memory

Dynamic Memory Allocation in C: Malloc(), Calloc(), Realloc(), Free()

What is Dynamic Memory Allocation?

Dynamic memory allocation lets a program request memory at runtime from the heap, rather than fixing sizes at compile time.

The Four Key Functions

  • malloc() — allocates a block of uninitialized memory.
  • calloc() — allocates memory for multiple elements and initializes it to zero.
  • realloc() — resizes previously allocated memory.
  • free() — releases memory back to the system once it's no longer needed.
int *arr = (int*) malloc(5 * sizeof(int));
arr = (int*) realloc(arr, 10 * sizeof(int));
free(arr);

Why It Matters

Dynamic allocation lets programs work with data structures — like linked lists and dynamic arrays — whose size isn't known until the program runs. Forgetting free() leads to memory leaks.

Ready to master real-world C Programming development?

Learn C Programming hands-on with mentor-led, live sessions.

Explore Course