मैंने पुस्तक में सीखा कि अगर मुझे किसी फ़ंक्शन से पॉइंटर वापस करने की आवश्यकता है, तो मैं malloc()
का उपयोग करता हूं और ढेर से स्मृति प्राप्त करता हूं। मैं सोच रहा था कि मैं समारोह के बाद आवंटित स्मृति को free()
कैसे कर सकता हूं।"स्थानीय समारोह में मॉलोक, मुख्य में मुफ्त मेमोरी" क्या यह ठीक है? कैसे?
क्या यह मेमोरी मुक्त करने के लिए मैंने निम्नलिखित कोड में क्या किया है ठीक है? यदि यह सही नहीं है, तो फ़ंक्शन के बाद मेमोरी मुक्त करने का सही तरीका क्या है?
int *Add_them_up (int *x, int *y)
{
int *p = (int *) malloc(sizeof (int));
*p = *x + *y;
return p;
}
int main()
{
int c = 3;
int d = 4;
int *presult = NULL;
presult = Add_them_up (&c, &d);
printf ("the result of adding is:%d\n", *presult);
free (presult);
return 0;
}
कृपया [देखें क्यों नहीं डालना] (http://stackoverflow.com/q/605845/2173917) 'malloc()' और 'C' में परिवार का वापसी मूल्य। –
@shinhwa एक गंभीर समस्या है जिसे आप यहां याद कर रहे हैं। –
@ सौरव घोष आपने मेरे दोस्त को एक गंभीर समस्या को नजरअंदाज कर दिया है। –