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

C प्रोग्रामिंग में malloc फंक्शन समझाना


समस्या

डायनामिक मेमोरी एलोकेशन फंक्शन्स का उपयोग करके एलिमेंट्स को प्रदर्शित और जोड़ने के लिए C प्रोग्राम लिखें।

समाधान

C में, लाइब्रेरी फंक्शन malloc रनटाइम पर बाइट्स में मेमोरी का एक ब्लॉक एलोकेट करता है। यह एक void पॉइंटर लौटाता है, जो एलोकेटेड मेमोरी के बेस एड्रेस की ओर इशारा करता है और मेमोरी को अनइनिशियलाइज़्ड छोड़ देता है।

सिंटैक्स

void *malloc(size in bytes)

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

  • int *ptr;

    ptr = (int *) malloc(1000);

  • int *ptr;

    ptr = (int *) malloc(n * sizeof(int));

नोट - यदि मेमोरी फ्री नहीं है तो यह NULL लौटाता है।

उदाहरण

#include<stdio.h> 
#include<stdlib.h> 
void main(){ 
    // वेरिएबल्स, पॉइंटर्स, sum घोषित करना // 
    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 : 5 
Enter the elements : 
23 45 65 12 23 
The sum of elements is 168 
Displaying the cleared out memory location : 
10753152 0 10748240 0 23

  1. C प्रोग्रामिंग भाषा में पॉइंटर्स के ऐरे को समझें C प्रोग्रामिंग भाषा में पॉइंटर्स के ऐरे को समझें

    पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल का पता स्टोर करता है। विशेषताएं पॉइंटर मेमोरी स्पेस बचाता है। सीधे मेमोरी लोकेशन एक्सेस के कारण पॉइंटर का एक्जीक्यूशन टाइम तेज होता है। पॉइंटर्स की मदद से, मेमोरी को कुशलता से एक्सेस किया जाता है, यानी मेमोरी को डायनामिकली एलोकेट और डीएलोकेट किया जाता है। पॉइ

  1. C भाषा में मोनोलिथिक और मॉड्यूलर प्रोग्रामिंग की व्याख्या C भाषा में मोनोलिथिक और मॉड्यूलर प्रोग्रामिंग की व्याख्या

    मोनोलिथिक प्रोग्रामिंग और मॉड्यूलर प्रोग्रामिंग के बीच अंतर को फायदे और नुकसान के साथ नीचे विस्तार से समझाया गया है। मोनोलिथिक प्रोग्रामिंग यदि हम संपूर्ण प्रोग्राम को एक ही फ़ंक्शन में लिखते हैं, यानी मेन फ़ंक्शन में, तो आप इसे मोनोलिथिक प्रकार की प्रोग्रामिंग कहेंगे। लेकिन, संपूर्ण लॉजिक को एक ही

  1. C ग्राफिक्स: bar() फ़ंक्शन C ग्राफिक्स: bar() फ़ंक्शन

    bar() फ़ंक्शन bar() C ग्राफिक्स में एक फ़ंक्शन है जो एक भरा हुआ आयत (बार) खींचता है। यह graphics.h हेडर फ़ाइल में परिभाषित है। सिंटैक्स void bar(int left, int top, int right, int bottom); पैरामीटर left, top: ऊपरी-बाएं कोने के निर्देशांक (x, y) right, bottom: निचले-दाएं कोने के निर्देशांक (x, y)