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).   

Functions:---

Definition:- it is basically a piece of code it has name for identification a function can be called multiple times to maintain the reusability and modularity. by writing function we can avoid same writing/piece of code Function aspects:-  3 aspects of function are 1.function declaration:- a function must be declared globally in c , to tell the compiler about function name, function return type, function parameter.           Syntax:-   return_type function_name(arguments or data_types parameter);              example:-   void sum(int a,int b); 2.function call:-  a function can be called anywhere from the program, pass the same no. of parameter as we write in function declaration.         Syntax:-   function_name(argument_list)             example:-   sum(a,b) 3.function definition:-  it contains the actual statements whi...

Introduction to C

About C:- C is a high-level language . It was initially first developed by D ennis Ritchie in 1972. It was developed to overcome the limitation of previous language such as B,BCPL etc. It was developed for Unix operating System It inherits many features of previous language Features/Advantage:- Simple :- because it provide data types, library function etc. Machine Independent or Portable:- because it can be executed on different machine Procedural language:- Instruction in c program are executed step by step Structured programming language:- break the problem into parts It provide dynamic memory allocation , pointers etc. Speed:-It is faster than another programming language like java, python etc. Disadvantage of C:- It does not support oops concept in which inheritance, polymorphism, encapsulation etc. come. It does not support namespace concept It does not support constructor and destructor There is lack of excepti...