समस्या
C भाषा में डायनामिक मेमोरी आवंटन फ़ंक्शन का उपयोग करके n संख्याओं को प्रदर्शित करना और उनका योग निकालना कैसे करें?
समाधान
निम्नलिखित C प्रोग्राम उपयोगकर्ता द्वारा n संख्याओं के तत्वों को प्रदर्शित करता है और डायनामिक मेमोरी आवंटन फ़ंक्शन का उपयोग करके उनका योग निकालता है। यहां, हम मेमोरी की बर्बादी को कम करने का भी प्रयास करते हैं।
उदाहरण
#include<stdio.h>
#include<stdlib.h>
void main(){
//वेरिएबल और पॉइंटर्स, योग घोषित करना//
int numofe,i,sum=0;
int *p;
//उपयोगकर्ता से तत्वों की संख्या पढ़ना//
printf("Enter the number of elements : ");
scanf("%d",&numofe);
//malloc() फ़ंक्शन कॉल करना//
p=(int *)malloc(numofe*sizeof(int));
/*आउटपुट प्रिंट करना - हमें if स्टेटमेंट का उपयोग करना होगा क्योंकि हमें जांचना होगा कि मेमोरी सफलतापूर्वक आवंटित/आरक्षित हुई है या नहीं*/
if (p==NULL){
printf("Memory not available");
exit(0);
}
//तत्व प्रिंट करना//
printf("Enter the elements : \n");
for(i=0;i<numofe;i++){
scanf("%d",p+i);
sum=sum+*(p+i);
}
printf("\nThe sum of elements is %d",sum);
free(p);//पहले 2 मेमोरी लोकेशन मिटाएं//
printf("\nDisplaying the cleared out memory location : \n");
for(i=0;i<numofe;i++){
printf("%d\n",p[i]);//गार्बेज मान प्रदर्शित होंगे//
}
}
आउटपुट
जब उपरोक्त प्रोग्राम निष्पादित होता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है:
Enter the number of elements: 4 Enter the elements: 23 45 67 89 The sum of elements is 224 Displaying the cleared out memory location: 7410816 0 7405904 0