समस्या
C प्रोग्रामिंग का उपयोग करके गतिशील रूप से आवंटित मेमोरी का उपयोग करके उपयोगकर्ता द्वारा दर्ज की गई n संख्याओं का योग ज्ञात करें।
समाधान
गतिशील स्मृति आवंटन सी प्रोग्रामर को रनटाइम पर स्मृति आवंटित करने में सक्षम बनाता है।
रन टाइम में गतिशील रूप से मेमोरी आवंटित करने के लिए हम जिन विभिन्न कार्यों का उपयोग करते हैं, वे हैं -
- मॉलोक () - रनटाइम पर मेमोरी के एक ब्लॉक को बाइट्स में आवंटित करता है।
- calloc () - रन टाइम पर मेमोरी के निरंतर ब्लॉक आवंटित करना।
- realloc () - आवंटित मेमोरी को कम करने (या) बढ़ाने के लिए उपयोग किया जाता है।
- निःशुल्क () - पहले से आवंटित स्मृति स्थान को हटा देता है।
सी प्रोग्राम के बाद तत्वों को प्रदर्शित करना और n संख्याओं के योग की गणना करना है।
गतिशील स्मृति आवंटन कार्यों का उपयोग करके, हम स्मृति के अपव्यय को कम करने का प्रयास कर रहे हैं।
उदाहरण
#include#include void main(){ // वेरिएबल और पॉइंटर्स घोषित करना, sum// int numofe,i,sum=0; इंट * पी; // उपयोगकर्ता से तत्वों की संख्या पढ़ना // प्रिंटफ ("तत्वों की संख्या दर्ज करें:"); स्कैनफ ("% d", और numofe); // कॉलिंग malloc () फ़ंक्शन // p =(int *) malloc (numofe * sizeof (int)); /*प्रिंटिंग ओ/पी - हमें if स्टेटमेंट का उपयोग करना होगा क्योंकि हमें यह जांचना है कि मेमोरी को सफलतापूर्वक आवंटित/आरक्षित किया गया है या नहीं*/ if (p==NULL){ प्रिंटफ ("मेमोरी उपलब्ध नहीं है"); बाहर निकलें (0); } // मुद्रण तत्व // प्रिंटफ ("तत्व दर्ज करें:\ n"); for(i=0;i आउटपुट
तत्वों की संख्या दर्ज करें:5तत्व दर्ज करें:2334123456तत्वों का योग 159 है।