मैं एक चर को हटाकर रैम मुक्त करने की कोशिश कर रहा हूंइसके बाद मुफ्त () फ़ंक्शन के साथ उपयोग किया जाता है, फिर भी मेरी रैम सफाई नहीं कर रही है। मुझे लगता है कि कोई कचरा सफाई नहीं है? कोड के अनुभाग से बाहर निकलने के बाद अंतरिक्ष साफ़ हो जाता है (स्कॉप्ड अगर-स्टेटमेंट, जबकि-लूप या फ़ंक्शन), लेकिन मुक्त () कथन स्वयं नहीं।
मैं रैम की जांच करने के लिए निम्नलिखित कर रहा हूं:
int freeRam () {
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
इसके अतिरिक्त, इस तरह की स्मृति को "मुक्त" कैसे किया जाएगा?
उत्तर:
उत्तर № 1 के लिए 7आप उम्मीद नहीं कर सकते हैं __brkval
सिर्फ इसलिए कि आप बुलाया free()
एक मेमोरी ब्लॉक पर। मेमोरी ब्लॉक होगा चिह्नित मुफ्त के रूप में और पुन: उपयोग के लिए उपलब्ध है, लेकिन सामान्य रूप से __brkval
केवल एक दिशा में ही कदम होगा ज्यादा से ज्यादा आपके प्रोग्राम का उपयोग किसी भी समय स्मृति की मात्रा।