Notes in Hindi

calloc() Function in Hindi

/ BCA / Programming with C and CPP

calloc() Function in Hindi

calloc() Function in Hindi

Introduction to calloc() Function in Hindi

जब हम C या C++ जैसी programming language में memory को dynamically allocate करना चाहते हैं, तो हम calloc(), malloc(), realloc() जैसे functions का इस्तेमाल करते हैं। इन functions की मदद से हम runtime पर memory assign कर सकते हैं। इसका अर्थ यह है कि program को चलाते समय जितनी memory की आवश्यकता हो उतनी memory system से ली जा सकती है।

इस लेख में हम calloc() function के बारे में विस्तार से सीखेंगे। यह function खासतौर पर beginners के लिए बहुत उपयोगी होता है क्योंकि यह एक साथ कई blocks की memory allocate करता है और उन्हें initialize भी करता है।

calloc() का full form है - Contiguous Allocation जिसका अर्थ होता है - लगातार memory blocks का allocation

Syntax of calloc() Function in Hindi

calloc() function का syntax बहुत ही सरल होता है। नीचे इसका basic structure दिया गया है -

ptr = (cast_type *) calloc(number_of_blocks, size_of_each_block);

यहाँ:

  • ptr: यह pointer है जो calloc() से मिली हुई memory को store करता है।
  • cast_type: यह उस data type का नाम होता है जिसे आप memory के रूप में रखना चाहते हैं, जैसे int, float, etc.
  • number_of_blocks: यह बताता है कि हमें कितने blocks चाहिए।
  • size_of_each_block: यह बताता है कि हर block का size कितना होगा।

उदाहरण:

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

इस उदाहरण में:

  • 5 blocks allocate किए गए हैं
  • हर block का size एक int जितना है
  • calloc function हर block को 0 से initialize करता है

calloc() Function vs malloc() Function in Hindi

calloc() और malloc() दोनों ही memory allocate करने के लिए उपयोग किए जाते हैं, लेकिन इनके बीच कुछ महत्वपूर्ण अंतर होते हैं। नीचे एक table के माध्यम से इनका comparison किया गया है -

विशेषता calloc() malloc()
Memory Initialization 0 से initialize करता है कोई initialization नहीं करता (garbage value रहती है)
Parameters दो parameters लेता है - blocks और size एक parameter लेता है - total size
Speed थोड़ा slower होता है थोड़ा fast होता है
Use Cases जब memory को initialize करना जरूरी हो जब initialization की आवश्यकता न हो

तो यदि आप चाहते हैं कि memory allocate होते ही उसमें value 0 हो जाए, तो calloc() function ज्यादा बेहतर होता है।

Use Cases of calloc() Function in Hindi

आइए जानते हैं किन-किन practical situations में हम calloc() function का उपयोग करते हैं -

  • Array Creation: जब हमें runtime पर एक array बनाना हो और सभी elements को 0 से initialize करना हो, तब calloc() ideal है।
  • 2D Array Allocation: जब multi-dimensional array को allocate करना हो तो हम multiple calloc() calls से row-wise memory ले सकते हैं।
  • Linked List Implementation: जब हम linked list या अन्य data structures बनाते हैं, तब हर node को calloc() से allocate किया जाता है ताकि default values 0 हों।
  • Form Input Memory Allocation: जब किसी application में user से dynamic data input लिया जाता है, और input की size runtime पर पता चलती है।

नीचे एक example दिया गया है जिसमें calloc() का उपयोग किया गया है:

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

int main() {
    int *arr;
    int n = 5, i;

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

    if (arr == NULL) {
        printf("Memory not allocated!");
        exit(0);
    }

    for (i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }

    free(arr);
    return 0;
}

इस program में:

  • 5 integers के लिए memory allocate की गई है
  • हर integer value को default रूप से 0 set किया गया है
  • अंत में memory को free किया गया है जिससे memory leak न हो

calloc() function से जुड़ी कुछ अतिरिक्त बातें जान लेना जरूरी है:

  • यह stdlib.h header file में define होता है, इसलिए इस header को जरूर include करें।
  • calloc() memory allocation के बाद NULL pointer return करता है यदि memory allocate न हो पाए।
  • calloc द्वारा दी गई memory heap memory से आती है, इसलिए उसे अंत में free() function से release करना जरूरी होता है।

कई बार students malloc और calloc के बीच confuse हो जाते हैं। simple भाषा में समझें तो अगर आपको "खाली थालियाँ (memory blocks)" चाहिए जिनमें पहले से खाना (data) न हो, सिर्फ zero हो, तो calloc() बेहतर है।

FAQs

calloc() एक built-in C function है जिसका उपयोग dynamically memory allocate करने के लिए किया जाता है। यह function एक साथ कई memory blocks allocate करता है और हर block को 0 से initialize करता है।
calloc() function memory allocate करने के साथ-साथ उसे 0 से initialize करता है, जबकि malloc() केवल memory allocate करता है और उसमें garbage values रह जाती हैं। calloc() दो parameters लेता है जबकि malloc() एक ही parameter लेता है।
जब हमें एक ही तरह के multiple elements के लिए memory allocate करनी हो और उन्हें 0 से initialize करना हो, जैसे array बनाते समय, तब calloc() का उपयोग किया जाता है। इससे runtime पर memory management आसान हो जाता है।
हाँ, यदि system में पर्याप्त memory उपलब्ध नहीं है तो calloc() function NULL return करता है। इसलिए हमेशा calloc() से return हुए pointer को check करना चाहिए कि वो NULL तो नहीं है।
calloc() का syntax है:
ptr = (cast_type *) calloc(number_of_blocks, size_of_each_block);
जहाँ cast_type data type होता है, और number_of_blocks तथा size_of_each_block वह मात्रा बताते हैं जितनी memory की आवश्यकता है।

Please Give Us Feedback