Dynamic memory allocation in C
What is dynamic memory allocation?
What are different memory allocation functions in c ?
What is difference between malloc(), calloc() and realloc() functions ?
(A) Introduction
(B) Difference between static memory allocation and dynamic memory allocation
Static Memory Allocation
|
Dynamic Memory Allocation
|
Memory is allotted at compile time
|
Memory is allotted at run time
|
Memory cannot be increase during execution of the program
|
Memory can be increase during  execution of the program
|
Static memory allocation is done using array
|
Dynamic memory allocation is done using liked list.
|
(i) malloc( ): malloc() may be a memory allocation perform that allocates requested size bytes and it returns a pointer to the primary byte of the allotted memory space. The malloc perform returns a pointer of type void thus we are able to assign it to any type of pointer.Â
The syntax of the malloc() perform is as follow:
ptr= (cast type *) malloc(byte-size);
where ptr may be a pointer of type cast-type.Â
x=(int *) malloc(10 *sizeof(int))
means a memory space admire ten times the scale of associate degree int byte  is reserved and therefore the address of the primary computer memory unit of memory allotted is assigned to the pointer x of int type..
ptr= (cast type *) calloc(n, element-size);
This statement allocates contiguous space for n blocks, every of size element-size bytes.
(iii) realloc( ): realloc is a memory allocation function that modifies the size of previously allocated space. Sometime it may happen that the allocated memory space is larger than what is required or it is less than what is required. In both cases, we can change the memory size already allocated with the help of the realloc function known as reallocation of memory.
Syntax of free() perform is as follow
free(ptr);