C में मॉलोक क्या है?
मैलोका () फ़ंक्शन मेमोरी आवंटन के लिए है। यह एक फ़ंक्शन है जो गतिशील रूप से मेमोरी के ब्लॉक को आवंटित करने के लिए उपयोग किया जाता है। यह निर्दिष्ट आकार की मेमोरी स्पेस को सुरक्षित रखता है और स्मृति स्थान की ओर इशारा करते हुए अशक्त सूचक देता है। लौटाया गया पॉइंटर प्राय: शून्य प्रकार का होता है। इसका मतलब है कि हम किसी भी पॉइंटर को मॉलोक फ़ंक्शन असाइन कर सकते हैं।
वाक्य - विन्यास
ptr = (cast_type *) malloc (byte_size);
यहाँ,
- ptr, cast_type का सूचक है।
- मॉलॉक फ़ंक्शन बाइट_साइज़ की आवंटित मेमोरी के लिए एक पॉइंटर लौटाता है।
Example: ptr = (int *) malloc (50)
जब इस कथन को सफलतापूर्वक निष्पादित किया जाता है, तो 50 बाइट्स का मेमोरी स्पेस आरक्षित होता है। आरक्षित स्थान के पहले बाइट का पता टाइप इंट के पॉइंटर ptr को सौंपा गया है।
मल्लोक कार्यान्वयन का एक और उदाहरण देखें:
#includeint main(){int *ptr;ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */if (ptr != NULL) {*(ptr + 5) = 480; /* assign 480 to sixth integer */printf("Value of the 6th integer is %d",*(ptr + 5));}}
आउटपुट:
Value of the 6th integer is 480
- ध्यान दें कि कोड को और अधिक मजबूत बनाने के लिए आकार (* ptr) का उपयोग sizeof (int) के बजाय किया गया था जब * ptr घोषणा को बाद में एक अलग डेटा प्रकार में टाइप किया जाता है।
- यदि मेमोरी पर्याप्त नहीं है तो आवंटन विफल हो सकता है। इस स्थिति में, यह एक NULL पॉइंटर लौटाता है। इसलिए, आपको NULL पॉइंटर के लिए जाँच करने के लिए कोड शामिल करना चाहिए।
- ध्यान रखें कि आवंटित स्मृति सन्निहित है और इसे एक सरणी के रूप में माना जा सकता है। हम ब्रैकेट [] का उपयोग करने के बजाय सरणी तत्वों तक पहुंचने के लिए सूचक अंकगणितीय का उपयोग कर सकते हैं। हम सरणी तत्वों को संदर्भित करने के लिए + का उपयोग करने की सलाह देते हैं क्योंकि वृद्धि ++ या + = का उपयोग करके सूचक द्वारा संग्रहीत पते को बदल देता है।
मॉलॉक फ़ंक्शन का उपयोग चरित्र डेटा प्रकार के साथ-साथ जटिल डेटा प्रकार जैसे संरचनाओं के साथ भी किया जा सकता है।