Dynamic memory allocation वह प्रक्रिया है जिसमें मेमोरी प्रोग्राम के run-time पर dynamically allocate किया जाता है। अर्थात् अलग अलग data type के मेमोरी blocks मेमोरी में कहीं पर भी हो सकते हैं उनका एक साथ या क्रम में होना जरूरी नहीं होता है। C प्रोग्रामिंग language में dynamic मेमोरी एलोकेशन के लिए 4 main functions का Use किया जाता है जो की <stdlib.h> header फाइल में save होते हैं इनका use करने के लिए <stdlib.h> header file को include करना जरूरी होता है। यह 4 functions निम्नलिखित हैं-
malloc()
calloc()
realloc()
free()
| Dynamic Memory Allocation in C |
dynamic memory allocation का use करके मेमोरी के wastage को रोका जा सकता है, इसमें केवल तभी मेमोरी use होती है जब प्रोग्राम को run किया जाता है उससे पहले किसी variable को कोई मेमोरी allocate नहीं होती है इसकी वजह से वेरिएबल द्वारा लिए जाने वाली मेमोरी स्पेस save हो जाती है
आइए इन सभी functions को detail में समझते हैं-
malloc() function in C language in hindi
malloc() dynamic memory allocation का एक function है। जिसका फुल फॉर्म memory allocation है। malloc () फंक्शन specified data type का एक single large memory block बनाता है। अर्थात इसके द्वारा जिस भी data type को मेमोरी allocate की जाती है यह उस data type का एक single large memory block बना देता है। यह प्रत्येक block को एक garbage value के द्वारा initialise कर देता है। यह एक null pointer return करता है जिसे किसी भी data type के pointer में change किया जा सकता है। इसका syntax इस प्रकार है
Syntax
ptr=(data-type*)malloc(n*byte-size);
Example
ptr=(int*)malloc(20*sizeof(int));
उपरोक्त उदाहरण में int data type का malloc() function allocation दिखाया गया है। यह function 40bypes का एक single memory block allocate करके Pointer ptr को return करेगा।
calloc() function in C language in Hindi
calloc() को contiguous मेमोरी allocation भी कहा जाता है। यह किसी specified data type के mulptiple मेमोरी blocks allocate करता है। अर्थात यह किसी specified data type के लिए contiguous form me अलग अलग मेमोरी ब्लॉक्स बना देता है। यह सभी blocks को default value zero से intialise कर देता है। इसका Syntax निम्नलिखित है
Syntax-
ptr=(data-type*)calloc(n, byte-size);
Example-
ptr=(char*)calloc(20, size of(char));
उपरोक्त उदाहरण में char data टाइप का calloc() फंक्शन allocation दिखाया गया है यह 20 एक एक bytes के अलग-अलग blocks को एक के बाद एक contiguous form में allocate करेगा।
realloc() function in C language in Hindi
realloc () को reallocation फंक्शन भी कहा जाता है, जिसका use memory के size को dynamically change करने में किया जाता है। यदि malloc() तथा calloc() फंक्शन के द्वारा allocated मेमोरी पर्याप्त नहीं होती है तो realloc () फंक्शन का use करके मेमोरी के साइज को घटाया या बढ़ाया जा सकता है । इसका syntax निम्न है
Syntax-
ptr=realloc(ptr, new-size);
free() function in C language in Hindi
free() function का use memory को dynamically de-allocate करने में किया जाता है। malloc() तथा calloc() functions के द्वारा allocate की गई मेमोरी खुद से free नहीं होती है इसलिए जब भी प्रोग्राम run करना बंद हो जाता है तो last में free() फंक्शन का use करके malloc () तथा calloc() functions के द्वारा ली गई मेमोरी स्पेस को free कर दिया जाता है जिससे मेमोरी waste नही जाती है। इसका Syntax निम्नलिखित है
Syntax-
free(ptr);
दोस्तों आज की पोस्ट dynamic memory allocation in C in Hindi के बारे में अपने कमेंट नीचे comment box में जरूर लिखें और पोस्ट को अपने friends के साथ शेयर करें।
इन्हें भी पढ़ें :-
Pointers in C language in Hindi
Thank you very much sir padh kr bahut he Accha laga Apne bahut he acche tarike se samjhaya h please ese he aor topic ko explain karega
ReplyDeleteThank you bhai aapka positive comment padhkar motivation mila. Hum aise hi aur bhi topics par behatarin content laate rahenge...!
Delete