How do you do dynamic memory allocation in C applications? List advantages and disadvantages of dynamic memory allocation vs. static memory allocation.
In C, malloc, calloc and realloc are used to allocate memory dynamically. In C++, new(), is
usually used to allocate objects. Some advantages and disadvantages of dynamic memory allocation
are:
Advantages:
•
Memory is allocated on an as-needed basis. This helps remove the inefficiencies inherent to
static memory allocation (when the amount of memory needed is not known at compile
time and one has to make a guess).
Disadvantages:
•
Dynamic memory allocation is slower than static memory allocation. This is because
dynamic memory allocation happens in the heap area.
•
Dynamic memory needs to be carefully deleted after use. They are created in non-
contiguous area of memory segment.
•
Dynamic memory allocation causes contention between threads, so it degrades performance
when it happens in a thread.
•
Memory fragmentation.
usually used to allocate objects. Some advantages and disadvantages of dynamic memory allocation
are:
Advantages:
•
Memory is allocated on an as-needed basis. This helps remove the inefficiencies inherent to
static memory allocation (when the amount of memory needed is not known at compile
time and one has to make a guess).
Disadvantages:
•
Dynamic memory allocation is slower than static memory allocation. This is because
dynamic memory allocation happens in the heap area.
•
Dynamic memory needs to be carefully deleted after use. They are created in non-
contiguous area of memory segment.
•
Dynamic memory allocation causes contention between threads, so it degrades performance
when it happens in a thread.
•
Memory fragmentation.
Comments
Post a Comment
https://gengwg.blogspot.com/