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

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

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

मॉलोक और कॉलोक में अंतर यह है कि मॉलोक मेमोरी को शून्य पर सेट नहीं करता है, जबकि कॉलोक आवंटित मेमोरी को शून्य पर सेट करता है।

स्मृति आवंटन कार्य

मेमोरी को दो तरह से आवंटित किया जा सकता है जैसा कि नीचे बताया गया है -

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

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

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

गतिशील स्मृति प्रबंधन के लिए उपयोग किए जाने वाले मानक पुस्तकालय कार्य इस प्रकार हैं -

  • मॉलोक ( )
  • कॉलॉक ( )
  • रियललॉक ( )
  • निःशुल्क ( )

कैलोक ( ) फ़ंक्शन

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

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

  • यह एक शून्य सूचक देता है, जो आवंटित स्मृति के आधार पते को इंगित करता है।

कॉलोक () फ़ंक्शन के लिए सिंटैक्स नीचे दिया गया है -

void *calloc ( numbers of elements, size in bytes)

उदाहरण

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

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

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

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

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

उदाहरण कार्यक्रम

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

#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 Calloc//
   p = (int * ) calloc (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 :
12
56
23
10
The sum of even numbers is : 78
The sum of odd numbers is : 23

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

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

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

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

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

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