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

C भाषा में Calloc क्या है?


C लाइब्रेरी मेमोरी एलोकेशन फंक्शन void *calloc(size_t nitems, size_t size) अनुरोधित मेमोरी को एलोकेट करता है और इसके लिए एक पॉइंटर लौटाता है।

malloc और calloc में अंतर यह है कि malloc मेमोरी को शून्य पर सेट नहीं करता, जबकि calloc एलोकेटेड मेमोरी को शून्य पर सेट करता है।

मेमोरी एलोकेशन फंक्शन्स

मेमोरी को दो तरीकों से एलोकेट किया जा सकता है:

C भाषा में Calloc क्या है?

एक बार कंपाइल टाइम पर मेमोरी एलोकेट हो जाने के बाद, इसे एक्जीक्यूशन के दौरान बदला नहीं जा सकता। इससे या तो मेमोरी की कमी या बर्बादी की समस्या होती है।

समाधान है मेमोरी को डायनामिकली बनाना यानी प्रोग्राम के एक्जीक्यूशन के दौरान यूजर की आवश्यकता के अनुसार।

डायनामिक मेमोरी मैनेजमेंट के लिए उपयोग की जाने वाली स्टैंडर्ड लाइब्रेरी फंक्शन्स निम्नलिखित हैं:

  • malloc()
  • calloc()
  • realloc()
  • free()

calloc() फंक्शन

  • यह फंक्शन रनटाइम पर मेमोरी के सतत ब्लॉक्स एलोकेट करने के लिए उपयोग किया जाता है।

  • यह विशेष रूप से ऐरे के लिए डिज़ाइन किया गया है।

  • यह एक वॉइड पॉइंटर लौटाता है, जो एलोकेटेड मेमोरी के बेस एड्रेस को इंगित करता है।

calloc() फंक्शन का सिंटैक्स नीचे दिया गया है:

void *calloc(size_t nitems, size_t size)

उदाहरण

निम्नलिखित उदाहरण calloc() फंक्शन के उपयोग को दर्शाता है:

int *ptr;
ptr = (int *) calloc(500, 2);

यहां, 2 बाइट्स प्रत्येक के 500 ब्लॉक्स लगातार एलोकेट किए जाएंगे। कुल एलोकेटेड मेमोरी = 1000 बाइट्स।

C भाषा में Calloc क्या है?

int *ptr;
ptr = (int *) calloc(n, sizeof(int));

उदाहरण प्रोग्राम

नीचे दिया गया C प्रोग्राम डायनामिक मेमोरी एलोकेशन फंक्शन calloc का उपयोग करके एलिमेंट्स के सेट में सम और विषम संख्याओं का योग 계산 करता है।

#include <stdio.h>
#include <stdlib.h>

void main() {
    // वेरिएबल्स, पॉइंटर्स घोषित करना
    int i, n;
    int *p;
    int even = 0, odd = 0;
    
    // calloc का उपयोग करके बेस एड्रेस p घोषित करना
    p = (int *) calloc(n, sizeof(int));
    
    // एलिमेंट्स की संख्या पढ़ना
    printf("एलिमेंट्स की संख्या दर्ज करें: ");
    scanf("%d", &n);
    
    /* आउटपुट प्रिंट करना - 
     * हमें if स्टेटमेंट का उपयोग करना होगा क्योंकि हमें जांचना होगा कि क्या मेमोरी
     * सफलतापूर्वक एलोकेट/रिजर्व हुई है या नहीं
     */
    if (p == NULL) {
        printf("मेमोरी उपलब्ध नहीं है");
        exit(0);
    }
    
    // फॉर लूप का उपयोग करके एलिमेंट्स को लोकेशन में स्टोर करना
    printf("एलिमेंट्स हैं: \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("सम संख्याओं का योग है: %d\n", even);
    printf("विषम संख्याओं का योग है: %d\n", odd);
}

आउटपुट

उपरोक्त प्रोग्राम को निष्पादित करने पर निम्नलिखित परिणाम प्राप्त होता है:

एलिमेंट्स की संख्या दर्ज करें: 4
एलिमेंट्स हैं:
12 56 23 10
सम संख्याओं का योग है: 78
विषम संख्याओं का योग है: 23

  1. C भाषा में strcmp() फंक्शन क्या है? C भाषा में strcmp() फंक्शन क्या है?

    C लाइब्रेरी फंक्शन int strcmp(const char *str1, const char *str2) str1 द्वारा इंगित स्ट्रिंग की तुलना str2 द्वारा इंगित स्ट्रिंग से करता है। कैरेक्टर्स का ऐरे स्ट्रिंग कहलाता है। घोषणा ऐरे के लिए घोषणा निम्नलिखित है: char stringname[size]; उदाहरण: char string[50]; 50 कैरेक्टर्स लंबाई की स्ट्रिंग

  1. - C भाषा में पहचानकर्ता (Identifier) क्या है?

    पहचानकर्ता (Identifier) का परिचय C प्रोग्रामिंग में पहचानकर्ता (Identifier) किसी भी चर (variable), फंक्शन, डेटा परिभाषा, लेबल आदि के लिए उपयोग किया जाने वाला नाम होता है। किसी भी प्रोग्रामिंग भाषा को सीखने से पहले आपको यह जानना आवश्यक है कि पहचानकर्ताओं को कैसे नाम दिया जाता है। C भाषा में पहचानकर

  1. - C# प्रोग्रामिंग क्या है?

    C# माइक्रोसॉफ्ट द्वारा विकसित एक आधुनिक, सामान्य-उद्देश्य, ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है।C# को कॉमन लैंग्वेज इंफ्रास्ट्रक्चर (CLI) के लिए डिज़ाइन किया गया है, जिसमें एक्जीक्यूटेबल कोड और रनटाइम वातावरण शामिल है जो विभिन्न हाई-लेवल लैंग्वेजेस को विभिन्न कंप्यूटर प्लेटफॉर्म और आर्किटेक्चर पर