dynamic memory allocation in C++ in hindi

Dynamic Array in C++ in hindi

एक array dynamic memory allocation का अच्छा उदाहरण हो सकता है।

जैसा कि हम जानते हैं कि array का size fixed होता है अर्थात जब हम array variable को declare करते हैं, तो साथ ही हम इसका size भी declare करते हैं, जिसे हम runtime में नहीं बदल सकते हैं और इसलिए यह केवल दिए गए size तक या उससे कम values को ही store कर सकता है।

उदाहरण के लिए ,

आप इसे समझ सकते हैं जैसे कि हमने एक program बनाया है और एक array variable का उपयोग करके 5 students के record को store किया है (array size 5 declare करके )। यह केवल 5 student के records को ही store कर सकता है और अगर हम इसमें 5 से कम students के record को store करते हैं तो बाकी शेष बची memory waste हो जाएगी जो कि जरूरत न होने पर भी program में बनी रहेगी।

मतलब अगर आप array size से कम record store करते हैं, तो बाकी memory waste होगी और जरूरत पड़ने पर भी हम इसमें 5 से अधिक students record भी store नहीं कर सकते हैं।

ऐसी स्थिति में हमें array size को वापस program में, array declaration में array -size को बदलना होगा, जिसे सही तरीका नहीं माना जाएगा।

लेकिन dynamic memory allocation से , हम runtime पर अपनी आवश्यकता के अनुसार array size को बढ़ा और घटा सकते हैं। इस प्रकार, यहां किसी भी प्रकार का memory wastage नहीं होगा।

लेकिन याद रखें कि runtime पर allocated memory को delete operator से release करना आवश्यक है।

किसी array में dynamic memory allocate करने का syntax नीचे दिया गया है –

SYNTAX:

memory allocate करने के लिए,

data-type pointer-variable = new data-type[size];

इसका program नीचे दिया गया है

#include<iostream.h>
#include<conio.h>

void main()
 {
  int i,size;
  int *ptr;
  clrscr();

  cout<<"Enter Array Size: ";
  cin>>size;

  ptr=new int[size];

  cout<<"\nEnter "<<size<<" Element in Array: ";

   for(i=0;i<size;i++)
    {
       cin>>*(ptr+i); //  here ptr[i]; will also work 
    }

  cout<<"Values Are\n";

   for(i=0;i<size;i++)
    {
       cout<<ptr[i]<<"\t"; // (ptr+i); will also work
    }

  delete[] ptr;    // delocating memory located by new operator

  getch();
}

OUTPUT

1st Execution में , 3 elements को store किया जाता है और array variable में केवल 3 elements के लिए memory allocate करेगा-

Enter Array Size: 3
Enter 3 Element in Array: 1 2 3

Values Are
1 2 3

2nd Execution में , 6 elements store किया जाता है और array केवल 6 elements के लिए memory allocate करेगा।

Enter Array Size: 6
Enter 6 Element in Array: 1 2 3 4 5 6

Values Are
1	2	3	4	5	6

Explanation

इस तरह, हम देख सकते हैं कि dynamic memory allocation कितना महत्वपूर्ण है।

Dynamic Object for structure and class in C++

yes , structure और class का dynamic variable /object संभव है। यह important है जब हम array and object के साथ
काम करते हैं।

syntax
क्योंकि, class और structure लगभग समान होते हैं, इसलिए दोनों में dynamic memory allocation का तरीका दोनों में एक जैसा ही होगा।

structure-name pointer-variable = new class-name
structure-name pointer-variable = new structure-name;

अधिक जानकारी के लिए similarities and difference between structure and class. को देखें।

यहाँ नीचे program में structure में dynamic memory allocate की गयी है-

#include <stdio.h>
#include <string.h>
#include<conio.h>
#include<iostream.h>

struct test
 {
   int x,y,sum;
   void get_sum(int,int);
 };

void test::get_sum(int a, int b)
{
   x = a;
   y = b;

   sum = x+y;
   cout<<x<<" + "<<y<<" = "<<sum;
}

void main()
{
   clrscr();

   test *ptr = new test; // dynamic object created 
   ptr->get_sum(3,4);    // member function calling

  delete ptr; // releasing memory using delete operator

  getch();
}

OUTPUT

3 + 4 = 7

previous – memory allocation in C++ in hindi

next –  Passing arguments to function in C++ hindi

Leave a Reply

Your email address will not be published. Required fields are marked *