Realloc () क्या है?
realloc () पहले से आवंटित मेमोरी ब्लॉक्स में अधिक मेमोरी साइज जोड़ने के लिए C लाइब्रेरी का एक फंक्शन है। सी में realloc का उद्देश्य वर्तमान मेमोरी ब्लॉकों का विस्तार करना है, जबकि यह मूल सामग्री को छोड़ देता है। realloc () फ़ंक्शन मॉलोक या कॉलोक फ़ंक्शन द्वारा पहले से आवंटित मेमोरी के आकार को कम करने में मदद करता है। realloc स्मृति के पुनः प्राप्ति के लिए खड़ा है।
सी में realloc के लिए सिंटैक्स
ptr = realloc (ptr,newsize);
उपरोक्त कथन चर में निर्दिष्ट आकार के साथ एक नया मेमोरी स्पेस आवंटित करता है। फ़ंक्शन को निष्पादित करने के बाद, पॉइंटर को मेमोरी ब्लॉक के पहले बाइट पर वापस कर दिया जाएगा। नया आकार पिछली मेमोरी से बड़ा या छोटा हो सकता है। हम यह सुनिश्चित नहीं कर सकते हैं कि यदि नया आवंटित ब्लॉक पिछले मेमोरी ब्लॉक के समान स्थान को इंगित करेगा। सी में realloc फ़ंक्शन नए क्षेत्र में पिछले सभी डेटा को कॉपी करेगा। यह सुनिश्चित करता है कि डेटा सुरक्षित रहेगा।
उदाहरण के लिए:
#includeint main () {char *ptr;ptr = (char *) malloc(10);strcpy(ptr, "Programming");printf(" %s, Address = %u\n", ptr, ptr);ptr = (char *) realloc(ptr, 20); //ptr is reallocated with new sizestrcat(ptr, " In 'C'");printf(" %s, Address = %u\n", ptr, ptr);free(ptr);return 0;}
Realloc () का उपयोग कैसे करें
C में नीचे का प्रोग्राम दर्शाता है कि मेमोरी को वास्तविक बनाने के लिए C में realloc का उपयोग कैसे करें।
#include#include int main() {int i, * ptr, sum = 0;ptr = malloc(100);if (ptr == NULL) {printf("Error! memory not allocated.");exit(0);}ptr = realloc(ptr,500);if(ptr != NULL)printf("Memory created successfully\n");return 0;}
सी उदाहरण में realloc का परिणाम:
Memory created successfully
जब भी realloc एक असफल ऑपरेशन में परिणाम देता है, यह एक अशक्त सूचक देता है, और पिछला डेटा भी मुक्त हो जाता है।