DYNAMIC MEMORY ALLOCATION
THE PROCESS OF ALLOCATING MEMORY AT RUN TIME IS KNOWN AS DYNAMIC MEMORY ALLOCATION. DYNAMIC MEMORY ALLOCATION CAN BE DEFINED AS A PROCEDURE IN WHICH THE SIZE OF A DATA STRUCTURE IS CHANGED DURING THE RUN TIME.THERE ARE FOUR LIBRARY FUNCTIONS PROVIDED BY C TO FACILITATE DYNAMIC MEMORY ALLOCATION. THEY ARE,
- MALLOC( )
- CALLOC( )
- FREE( )
- REALLOC( )
MALLOC
THE NAME MALLOC STANDS FOR MEMORY ALLOCATION. A BLOCK OF MEMORY MAY BE ALLOCATED USING THE FUNCTION MALLOC. THE MALLOC FUNCTION RESERVES A BLOCK OF MEMORY OF SPECIFIED SIZE AND RETURNS A POINTER OF TYPE VOID.SYNTAX :
PTR = ( CAST-TYPE * ) MALLOC ( BYTE-SIZE );
EXAMPLE :
Y = ( INT * ) MALLOC ( 100 * SIZE OF ( INT ) );
CALLOC
THE CALLOC STANDS FOR CONTIGUOUS ALLOCATION. CALLOC IS ANOTHER MEMORY ALLOCATION FUNCTION NORMALLY USED FOR REQUESTING MEMORY SPACE AT RUN TIME FOR STORING DERIVED DATA TYPES SUCH AS ARRAYS AND STRUCTURES. CALLOC ALLOCATES MULTIPLE BLOCKS OF STORAGE.SYNTAX :
PTR = ( CAST-TYPE ) CALLOC ( N, ELEMENT-SIZE );
EXAMPLE :
ST_PTR = ( STUDENT * ) CALLOC ( CLASS_SIZE, SIZEOF( STUDENT ) );
FREE
FREE IS A DYNAMIC MEMORY CREATED WITH EITHER CALLOC OR MALLOC.WE CAN USE FREE EXPLICITLY TO RELEASE THE SPACE. IT FREES PREVIOUSLY ALLOCATED SPACE.SYNTAX :
FREE ( PTR );
REALLOC
THE NAME REALLOC STANDS FOR REALLOCATION. REALLOC MODIFIES THE SIZE OF PREVIOUSLY ALLOCATED SPACE.SYNTAX :
PTR = REALLOC ( PTR, NEWSIZE );
LINKED LIST
A LINKED LIST IS A SET OF DYNAMICALLY ALLOCATED NODES, ARRANGED IN SUCH A WAY THAT EACH NODE CONTAINS ONE VALUE AND ONE POINTER. THE POINTER ALWAYS POINTS TO THE NEXT MEMBER OF THE LIST. IF THE POINTER IS NULL, THEN IT IS THE LAST NODE IN THE LIST. A LINKED LIST IS HELD USING A LOCAL POINTER VARIABLE WHICH POINTS TO THE FIRST ITEM OF THE LIST. IF THAT POINTER IS ALSO NULL, THEN THE LIST IS CONSIDERED AS EMPTY.EXAMPLE :
STRUCT LINKEDLIST {
INT DATA;
STRUCT LINKEDLIST
*NEXT;
};
CODE MASTER
Comments
Post a Comment