Dynamic Memory Allocation is defined as the dynamically allocation of space for variables at runtime.
A D V E R T I S E M E N T
It is wasteful when dealing with array type structures to allocate so much space when it is declared
Five ANSI Standartd Function Used in Dynamic Memory Allocation
ANSI C provides five standard functions that will help you allocate memory on the heap which are as follows:
sizeof()
malloc()
calloc()
realloc()
free()
The following table describe the five different standard functions that helps you allocate memory dynamically
Function
Task
sizeof
The sizeof() function returns the memory size of the requested variable
malloc
Allocates memory requests size of bytes and returns a pointer to the Ist byte of
allocated space
calloc
Allocates space for an array of elements initializes them to zero and returns a pointer to the
memory
free
Frees previously allocated space
realloc
Modifies the size of previously allocated space.
sizeof()
The sizeof() function returns the memory size of requested variable.
This call should be used in the conjunction with the calloc() function call, so that only the necessary memory is allocated, rather than a fixed size. Consider the following,
struct date {
int hour, minute, second;
};
int x;
x = sizeof( struct date );
malloc()
A block mf memory may be allocated using the function called malloc.
The malloc function reserves a block of memory of specified size and return a pointer of type void.
This means that we can assign it to any type of the pointer.
It takes the following form:
ptr=(cast-type*)malloc(byte-size);
ptr is a pointer of type cast-type the malloc returns a pointer (of cast type) to an area
of memory with the size byte-size.
The following is the example of using malloc function
x=(int*)malloc(100*sizeof(int));
calloc()
Calloc is another memory allocation function that is normally used to request the multiple blocks of storage each of same size and then sets all bytes to zero. The general form of calloc is:
ptr=(cast-type*) calloc(n,elem-size);
The above statement allocates contiguous space for n blocks each size of the elements size bytes.
All bytes are initialized to zero and a pointer to the first byte of allocated region is returned.
If there is not enough space a null pointer is also returned.
realloc()
The memory allocated by using calloc or malloc might be insufficient or excess sometimes in both the situations we can change the memory size already allocated with the help of the function called realloc. This process is called the reallocation of memory.
The general statement of reallocation of memory is :
ptr=realloc(ptr,newsize);
free()
Compile time storage of a variable is allocated and released by the system in accordance with its storage class.
With the dynamic runtime allocation, it is our responsibility to release the space when it is not required at all.When the storage is limited,the release of storage space becomes important . When we no longer need the data we stored in a block of memory and we do not intend to use that block for the storing any other information,
Using the free function,we may release that block of memory for future use.
free(ptr);
ptr is a pointer that has been created by using calloc or malloc.
The following program illustrate the reallocation of memory using realloc() and malloc()
View comments on this page.
Posted By ranjeet kumar on: Saturday, October 2, 2010 examples where is the programe using link list?
Share And Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
Keywords:
Dynamic Memory Allocation in C,
dynamic memory allocation in c++,
c arrays,
c tutorial,
c array,
void c,
c syntax,
unix memory,
value allocation,
c language,
return c,
memory type,
dynamic example,
dynamic algorithm,
dynamic tutorial,
c example,
c algorithm,
variable c,
c type,
c program,
memory size,
unix c