Skip to main content

Dynamic Memory Allocation

DMA(Dynamic Memory Allocation):-
                          At run time decision is taken how much memory is taken by the variable.So there are two ways come to make a variable .

  1. SMA:in which create a variable and how much memory taken is decided at the compilation time.For example :- int a, int b[10]; These variable a and b take a fix amount of memory.
  2. DMA:- second we create a variable which take the memory at the run time(i.e dynamically).The variable which is created dynamically does not have a name they have a address for which we use a pointer because only pointer access the address.
Use(need) of DMA:- 
                      we study about the array.An array is a collection of items(data) having a fixed size.
suppose we create an array.

 For Example:- int a[6]={1,2,3,4,5,6};

Here size of array is fixed.what will happen if we need to store more data in the array.we cannot do that.

another Example:- int b[6]={1,4,6};

Here is the size of array is 6 but memory occupy only 3 , 3 is blank which is the wastage of memory.

That's why DMA is used.Because due to dynamically we can store any number of data in the array.If array is fill and a new element is stored in array dynamically then the size of array also increased and due to DMA there is no Wastage of memory.

C provide 4 library function to achieve the DMA(Dynamic Memory Allocation).The definition of these function is present in header file stdlib.h
  1. malloc()
  2. calloc()
  3. free()
  4. realloc()
1)malloc or memory allocation:- it is used to allocate a large block of memory with the specified size.It returns a pointer of type void which can be casted(convert) into a pointer of any form.
Note:- if ptr==NULL; then memory is not allocate ,it is same for all 4 functions and good to use every time.

EXAMPLE:-


2)calloc or contiguous allocation:- it is used to allocate specified number of block memory of a specified type.It initialize each block with the default value 0.



EXAMPLE:-

Write the same program of malloc for calloc also but the only difference is in the line 10.In calloc program the line 10 is written as 

OUTPUT IS ALSO SAME


3)free:- the malloc and calloc are used for allocate the memory.So for deallocate that memory which create by malloc or by calloc, free is used.
Syntax:- free(ptr);

EXAMPLE:- 


NOTE:- Every time use free when ever you allocate a memory dynamically

4)realloc or reallocation:- if the dynamically allocated memory is insufficient then you can change the size of previously allocated memory is by using realloc.realloc means again allocate the memory if there is problem.


"""PLEASE SHARE WITH YOUR FRIENDS"""

Comments

Popular Posts

Static Memory Allocation

Statement are of two types:- Declaration:- in which we declare the variable Action:- in which for,if-else,getch,printf,scanf etc are used. SMA(STATIC MEMORY ALLOCATION):-                                whenever we create a program,there is a line of declaration statement(or data type declarartion statement) such as int a;char b;etc. Due to this statement we create a variable a,now this variable is the example of SMA.SMA means how much memory is consumed by variable at the time of compiler,this decision is taken before the compilation. At the compile time these variable such as a and b does not having a memory.Memory is given when program is run i.e when object file convert into .exe file.But when program is run how much memory is taken by the variable is decided at the compilation time.This is known as SMA(Static Memory Allocation).   

Compilation Process in C

Compilation The conversion of source code into object code is known as compilation.This process is done with the help of compiler. below is a full diagram of showing how source code convert into software(i.e software development in c) Explanation:- Source code :- the c programming coding is known as source code. save your programe with .c extension then your file become source file for example in fig: sum.c is a source file in which source code is written to print a hello. Prerocessor :- first we need a preprocessor software to convert source file (i.e .c file).Preprocessor handle all those statement which is starting from # symbol. Header file :-  In our programe as seen clearly in sum.c we did not create any header file (i.e which start from # symbol) we just use it.Preprocessor add the content of header file in our source file and creates a new file this file same as our source file but only difference is that the header file removed from the new file which ...

C PREPROCESSOR

DEF:- The C Preprocessor or cpp is the macro processor for the C and C++ programming language.It provide the ability for the inclusion of header file, macro expansion ,conditional compilation( #if,#ifdef,#ifndef,#else,#elif,#endif ) and line control. NOTE:- preprocessor directive are executed before compilation.All preprocessor directive starts with the # hash-symbol. There any many preprocessor directives in c language.In the figure there are two #if written. 1)#include:- The #include preprocessor directive is used to paste code of given file into current file. It is used include system-defined and user-defined header files. If included file is not found, compiler renders error. By the use of #include directive, we provide information to the preprocessor where to look for the header files. There are two variants to use #include directive. (a) #include <filename> :- The #include <filename> tells the compiler to look for the directory where system header file...