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

C . में calloc () बनाम malloc ()

कॉलॉक ()

फ़ंक्शन कॉलोक () सन्निहित स्थान के लिए है। यह मॉलोक () के समान काम करता है, लेकिन यह एक ही आकार के मेमोरी के कई ब्लॉक आवंटित करता है।

यहाँ C भाषा में calloc() का सिंटैक्स दिया गया है,

void *calloc(size_t number, size_t size);

यहां,

संख्या - आबंटित किए जाने वाले सरणी के तत्वों की संख्या।

आकार - बाइट्स में आवंटित मेमोरी का आकार।

यहाँ C भाषा में calloc() का एक उदाहरण दिया गया है,

उदाहरण

#include <stdio.h>
#include <stdlib.h>
int main() {
   int n = 4, i, *p, s = 0;
   p = (int*) calloc(n, sizeof(int));
   if(p == NULL) {
      printf("\nError! memory not allocated.");
      exit(0);
   }
   printf("\nEnter elements of array : ");
   for(i = 0; i < n; ++i) {
      scanf("%d", p + i);
      s += *(p + i);
   }
   printf("\nSum : %d", s);
   return 0;
}

आउटपुट

Enter elements of array : 2 24 35 12
Sum : 73

उपरोक्त कार्यक्रम में, मेमोरी ब्लॉक को कॉलोक () द्वारा आवंटित किया जाता है। यदि सूचक चर शून्य है, तो कोई स्मृति आवंटन नहीं है। यदि सूचक चर शून्य नहीं है, तो उपयोगकर्ता को सरणी के चार तत्व दर्ज करने होते हैं और फिर तत्वों के योग की गणना की जाती है।

p = (int*) calloc(n, sizeof(int));
if(p == NULL) {
   printf("\nError! memory not allocated.");
   exit(0);
}
printf("\nEnter elements of array : ");
for(i = 0; i < n; ++i) {
   scanf("%d", p + i);
   s += *(p + i);
}

मॉलोक ()

फ़ंक्शन malloc () का उपयोग बाइट्स के अनुरोधित आकार को आवंटित करने के लिए किया जाता है और यह आवंटित मेमोरी के पहले बाइट के लिए एक पॉइंटर देता है। विफल होने पर यह शून्य सूचक देता है।

यहाँ C भाषा में malloc() का सिंटैक्स दिया गया है,

pointer_name = (cast-type*) malloc(size);

यहां,

pointer_name - पॉइंटर को दिया गया कोई भी नाम।

कास्ट-प्रकार - डेटाटाइप जिसमें आप आवंटित मेमोरी को malloc() द्वारा डालना चाहते हैं।

आकार - बाइट्स में आवंटित मेमोरी का आकार।

यहाँ C भाषा में malloc() का एक उदाहरण दिया गया है,

उदाहरण

#include <stdio.h>
#include <stdlib.h>
int main() {
   int n = 4, i, *p, s = 0;
   p = (int*) malloc(n * sizeof(int));
   if(p == NULL) {
      printf("\nError! memory not allocated.");
      exit(0);
   }
   printf("\nEnter elements of array : ");
   for(i = 0; i < n; ++i) {
      scanf("%d", p + i);
      s += *(p + i);
   }
   printf("\nSum : %d", s);
   return 0;
}

यह रहा आउटपुट,

आउटपुट

Enter elements of array : 32 23 21 8
Sum : 84

उपरोक्त कार्यक्रम में, चार चर घोषित किए गए हैं और उनमें से एक सूचक चर *p है जो मॉलोक द्वारा आवंटित स्मृति को संग्रहीत कर रहा है। सरणी के तत्व उपयोगकर्ता द्वारा मुद्रित किए जाते हैं और तत्वों का योग मुद्रित होता है।

int n = 4, i, *p, s = 0;
p = (int*) malloc(n * sizeof(int));
if(p == NULL) {
   printf("\nError! memory not allocated.");
   exit(0);
}
printf("\nEnter elements of array : ");
for(i = 0; i < n; ++i) {
   scanf("%d", p + i);
   s += *(p + i);
}
printf("\nSum : %d", s);

  1. बाढ़ बनाम फिक्स्ड रूटिंग एल्गोरिदम

    फ्लडिंग और फिक्स्ड रूटिंग ट्रांसमिशन लाइनों से जुड़े कई मध्यवर्ती राउटर के माध्यम से डेटा पैकेट को स्रोत से गंतव्य तक पहुंचाने के तरीके हैं। बाढ़ इस सरल विधि का पालन करने वाली एक गैर-अनुकूली रूटिंग तकनीक है - जब एक डेटा पैकेट राउटर पर आता है, तो इसे सभी आउटगोइंग लिंक पर भेजा जाता है, सिवाय इसके कि

  1. सेटिंग्स और सिंकिंग:फ़ायरफ़ॉक्स बनाम क्रोम

    चाहे आप मुख्य रूप से अपने ब्राउज़र का उपयोग काम या खेलने के लिए करें; गति, विश्वसनीयता, सेटिंग्स और सुविधाएँ आवश्यक हैं। फ़ायरफ़ॉक्स और क्रोम शीर्ष ब्राउज़र विकल्प हैं, प्रत्येक के अपने फायदे हैं। तो, क्या दोनों के बीच कोई सर्वश्रेष्ठ विकल्प है? आइए कुछ अंतर देखें। ब्राउज़र सेटिंग ब्राउज़र सेटिंग्

  1. यहां बनाम माइक्रोसॉफ्ट बनाम विंडोज ... मैप

    सुन सुन। मैं यहां हूं, क्या आप मुझे एक दूत भेजेंगे। जो भी हो, आज मैं विंडोज फोन के लिए उपलब्ध तीन ऑफ़लाइन नेविगेशन सूट के पेशेवरों और विपक्षों पर चर्चा करना चाहता हूं, और वे एक-दूसरे के खिलाफ कैसे ढेर होते हैं। क्योंकि HERE मैप्स अब WP10 पर उपलब्ध नहीं हैं और अब WP8 पर अपडेट नहीं होते हैं, और आपको M