C लाइब्रेरी में realloc() फ़ंक्शन: इसका उपयोग कैसे करें? सिंटैक्स और उदाहरण
realloc() क्या है?
रीयलोक () C लाइब्रेरी का एक फ़ंक्शन है जो पहले से आवंटित मेमोरी ब्लॉक में अधिक मेमोरी साइज़ जोड़ता है। C में realloc का उद्देश्य मूल सामग्री को वैसे ही छोड़ते हुए वर्तमान मेमोरी ब्लॉक का विस्तार करना है। realloc() फ़ंक्शन malloc या calloc फ़ंक्शन द्वारा पहले से आवंटित मेमोरी के आकार को कम करने में मदद करता है। realloc का मतलब मेमोरी का पुनः आवंटन है।
C में realloc के लिए सिंटैक्स
ptr = realloc (ptr,newsize);
उपरोक्त कथन newsize चर में निर्दिष्ट आकार के साथ एक नया मेमोरी स्पेस आवंटित करता है। समारोह, पॉइंटर मेमोरी ब्लॉक के पहले बाइट पर वापस आ जाएगा। नया आकार पिछली मेमोरी से बड़ा या छोटा हो सकता है। हम यह सुनिश्चित नहीं कर सकते कि नया आवंटित ब्लॉक पिछले मेमोरी ब्लॉक के समान स्थान पर इंगित करेगा या नहीं। C में realloc फ़ंक्शन नए क्षेत्र में पिछले सभी डेटा की प्रतिलिपि बनाएगा। यह सुनिश्चित करता है कि डेटा सुरक्षित रहेगा।
उदाहरण के लिए:
#include <stdio.h>
int 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 size
strcat(ptr, " In 'C'");
printf(" %s, Address = %u\n", ptr, ptr);
free(ptr);
return 0;
}
realloc() का उपयोग कैसे करें
नीचे दिया गया C प्रोग्राम दर्शाता है कि मेमोरी को पुनः आवंटित करने के लिए realloc का उपयोग कैसे किया जाता है।
#include <stdio.h>
#include <stdlib.h>
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;
}
C उदाहरण में realloc का परिणाम:
Memory created successfully
जब भी realloc के परिणामस्वरूप कोई असफल ऑपरेशन होता है, तो यह एक रिटर्न देता है नल पॉइंटर, और पिछला डेटा भी मुक्त हो जाता है.
