Memory Operations in C

 

C Dynamic Memory Allocation:

Sometimes the size of an array which we declared may be insufficient in storage. To resolve this issue, we can allocate memories manually during run-time. This process is known as dynamic memory allocation in C programming.

To allocate the memory dynamically in C, library functions used are malloc(), calloc(), realloc() and free() are used. These functions are defined in the <stdlib.h> header file.

C malloc()

The name "malloc" stands for memory allocation.

The malloc() function reserves a block of memory of the specified number of bytes. And, it returns a pointer of void which can be casted into pointers of any form.

Syntax:

ptr = (castType*) malloc(size);
 

C free()

Dynamically allocated memory created with either calloc() or malloc() doesn't get freed on their own. You must explicitly use free() to release the space.

 

 Syntax:

free(ptr);

 

C calloc()

The name "calloc" stands for contiguous allocation.

The malloc() function allocates memory and leaves the memory uninitialized. Whereas, the calloc() function allocates memory and initializes all bits to zero.

 

  Syntax:

ptr = (castType*)calloc(n, size);
 

C realloc()

If the dynamically allocated memory is insufficient or more than required, you can change the size of previously allocated memory using the realloc() function.

   Syntax:

ptr = realloc(ptr, x);

 

 Example: 

 



 

 Example: 

 


 Example:








Comments