कॉलॉक ()
फ़ंक्शन कॉलोक () सन्निहित स्थान के लिए है। यह मॉलोक () के समान काम करता है, लेकिन यह एक ही आकार के मेमोरी के कई ब्लॉक आवंटित करता है।
यहाँ 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);