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:
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).
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.