Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी प्रोग्रामिंग में डायनामिक मेमोरी आवंटन से आपका क्या मतलब है?

डायनामिक मेमोरी आवंटन

  • निष्पादन के समय (रन टाइम) स्मृति का आवंटन गतिशील स्मृति आवंटन के रूप में जाना जाता है।

  • फ़ंक्शन कॉलोक () और मॉलोक () गतिशील मेमोरी के आवंटन का समर्थन करते हैं।

  • जब फ़ंक्शन द्वारा मान लौटाया जाता है और पॉइंटर वेरिएबल को असाइन किया जाता है, तो इन फ़ंक्शंस का उपयोग करके मेमोरी स्पेस का गतिशील आवंटन किया जाता है।

  • इस मामले में, चर केवल तभी आवंटित किए जाते हैं जब आपकी प्रोग्राम इकाई सक्रिय हो जाती है।

  • यह गतिशील आवंटन को लागू करने के लिए हीप नामक डेटा संरचना का उपयोग करता है।

  • स्मृति पुन:प्रयोज्य है और आवश्यकता न होने पर स्मृति को मुक्त किया जा सकता है।

  • यह अधिक कुशल है।

  • इस स्मृति आवंटन योजना में, निष्पादन स्थिर स्मृति आवंटन से धीमा है।

  • यहां स्मृति को कार्यक्रम के दौरान किसी भी समय जारी किया जा सकता है।

उदाहरण

निम्नलिखित प्रोग्राम गतिशील मेमोरी आवंटन फ़ंक्शन का उपयोग करके तत्वों के एक समूह में सम संख्याओं और विषम संख्याओं के योग की गणना करता है -

#include<stdio.h>
#include<stdlib.h>
void main(){
   //Declaring variables, pointers//
   int i,n;
   int *p;
   int even=0,odd=0;
   //Declaring base address p using malloc//
   p=(int *)malloc(n*sizeof(int));
   //Reading number of elements//
   printf("Enter the number of elements : ");
   scanf("%d",&n);
   /*Printing O/p -
   We have to use if statement because we have to check if memory
   has been successfully allocated/reserved or not*/
   if (p==NULL){
      printf("Memory not available");
      exit(0);
   }
   //Storing elements into location using for loop//
   printf("The elements are : \n");
   for(i=0;i<n;i++){
      scanf("%d",p+i);
   }
   for(i=0;i<n;i++){
      if(*(p+i)%2==0){
         even=even+*(p+i);
      }
      else{
         odd=odd+*(p+i);
      }
   }
   printf("The sum of even numbers is : %d\n",even);
   printf("The sum of odd numbers is : %d\n",odd);
}

आउटपुट

Enter the number of elements : 4
The elements are :
35
24
46
12
The sum of even numbers is : 82
The sum of odd numbers is : 35

  1. डायनामिक आईपी एड्रेस क्या है?

    एक गतिशील आईपी पता एक आईपी पता है जो स्वचालित रूप से प्रत्येक कनेक्शन, या नोड . को असाइन किया जाता है , किसी नेटवर्क का, जैसे आपका स्मार्टफ़ोन, डेस्कटॉप पीसी, या वायरलेस टैबलेट। IP पतों का यह स्वचालित असाइनमेंट एक DHCP सर्वर द्वारा पूरा किया जाता है। एक DHCP-सर्वर-असाइन किए गए IP पते को गतिशील . कह

  1. इंटरफेस और सेवाओं से आप क्या समझते हैं?

    आम तौर पर एक नेटवर्क सेवा एक एप्लिकेशन है जो एप्लिकेशन लेयर और ऊपर पर चलता है और कंप्यूटर नेटवर्किंग में उपयोग किया जाता है। नेटवर्क सेवा डेटा संग्रहण, हेरफेर, प्रस्तुति, संचार प्रदान करती है। इसे क्लाइंट-सर्वर आर्किटेक्चर या पीयर-टू-पीयर आर्किटेक्चर का उपयोग करके कार्यान्वित किया जाता है। सेवा इं

  1. C प्रोग्रामिंग में स्टैटिक मेमोरी एलोकेशन से आप क्या समझते हैं?

    मेमोरी को निम्नलिखित दो तरीकों से आवंटित किया जा सकता है - स्थिर मेमोरी आवंटन स्थिर चर एक निश्चित आकार के आवंटित स्थान के एक ब्लॉक में परिभाषित करता है। एक बार आवंटित होने के बाद, इसे कभी भी मुक्त नहीं किया जा सकता है। प्रोग्राम में घोषित चर के लिए मेमोरी आवंटित की जाती है। पता & ऑपरेटर का उप