Dynamic Memory Allocation in C

This tutorial covers concepts of dynamic memory allocation in c. Syntax and use of different functions used for dynamic memory allocation in c have been explained in this tutorial. Use of malloc(), calloc() , ralloc() and free() functions are explained in this tutorial.

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 ?

This tutorial covers concepts of dynamic memory allocation in c. Syntax and use of different functions used for dynamic memory allocation in c have been explained in this tutorial. Use of malloc(), calloc() , ralloc() and free() functions are explained in this tutorial.

(A) Introduction

When we assign memory
statically by declaring the array size within the program
,thusonce we declare the array size before use it then
there could a scenarioonce this
array become short to hold the more data item. One solution to this problem is
allocate the memory at run time.

.Dynamic memory allocation means that allocating
the memory at run time as per the necessity.

(C) Dynamic Memory Allocation Functions

Most commonly used dynamic memory allocation functions in
c area as follow :

(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 thuswe 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.

Example, the statement

x=(int *) malloc(10 *sizeof(int))

means a memory space admireten times the scale of associate
degree int byte is reserved and
therefore the address of the primarycomputer
memory unit of memory allotted isassigned to the pointer x of int type..

The malloc function can
also allocate space for complex data types such as structures. For

ptr= (struct student*)
malloc(sizeof (struct student));

where ptr is a pointer
of type struct student.

(ii) calloc( ):calloc()
is other memory allocation function that allocates space for
an array of items, initializes them to zero and so returns
a pointer to the memory. This performis often used for requesting memory space at
run time. The syntax of calloc() method is as follow:

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.

For example,
if the original allocation is done by statement

ptr= malloc(size);

then reallocation is
done by the statement

ptr=realloc(ptr,newsize);

which
will allocate a new memory space of size newsize to the pointer variable
ptr and returns a pointer to the first byte of the new memory block

(iv) free() - memory allotted by
malloc() and calloc() performwill beunleash with the help

This tutorial covers concepts of dynamic memory allocation in c. Syntax and use of different functions used for dynamic memory allocation in c have been explained in this tutorial. Use of malloc(), calloc() , ralloc() and free() functions are explained in this tutorial.