Memory Allocation in C
Programming
Understanding Dynamic and Static
Memory Management
Agenda
• 1. Introduction to Memory Allocation
• 2. Types of Memory Allocation
• 3. Static vs Dynamic Memory
• 4. Memory Management Functions in C
• 5. Common Issues & Best Practices
• 6. Conclusion
Introduction to Memory Allocation
• • Definition: Memory allocation assigns
memory to variables and data structures.
• • Importance:
• - Optimizes program performance.
• - Prevents memory leaks and overflows.
• • Memory in C:
• - Stack
• - Heap
Types of Memory Allocation
• 1. Static Memory Allocation:
• - Fixed size, compile-time allocation.
• - Example: Arrays, global variables.
• 2. Dynamic Memory Allocation:
• - Flexible size, runtime allocation.
• - Example: Linked lists, dynamic arrays.
F S D
e t y
a a n
t
u
t
i
a
m Static vs Dynamic Memory
r c i
e c
M
e M
me
o m
r o
y r
y
A C R
l o u
l mn
o p t
c i i
a l m
t e e
i -
o t
n i
m
T e
i
m
e
Memory Management Functions in
C
• • malloc(): Allocates a block of memory.
• • calloc(): Allocates multiple blocks and
initializes to zero.
• • realloc(): Resizes previously allocated
memory.
• • free(): Frees allocated memory.
Memory Allocation Example
• #include <stdio.h>
• #include <stdlib.h>
• int main() {
• int *arr;
• int n = 5;
• arr = (int*) malloc(n * sizeof(int));
• if (arr == NULL) {
Common Issues
• • Memory Leaks: Forgetting to free allocated
memory.
• • Dangling Pointers: Accessing freed memory.
• • Buffer Overflow: Exceeding allocated
memory bounds.
Best Practices
• 1. Always initialize pointers.
• 2. Free memory after use.
• 3. Use calloc() for zero-initialized memory.
• 4. Avoid memory fragmentation.
• 5. Use debugging tools like Valgrind.
Conclusion
• • Memory management is crucial for efficient
programs.
• • Utilize memory allocation functions wisely.
• • Avoid pitfalls like memory leaks and dangling
pointers.
Questions?
• Feel free to ask any questions regarding
memory allocation in C programming.