The process of allocating memory at run time is known as dynamic memory allocation. Although C does not inherently have this facility, there are four library routines that can be used for allocating and freeing memory during program execution: malloc, calloc, realloc and free