/ / क्यों मुफ्त है () मेरे Arduino Uno - c ++, मेमोरी, मेमोरी-प्रबंधन, Arduino पर रैम मुक्त नहीं है

क्यों मुक्त है () मेरे Arduino Uno - c ++, मेमोरी, मेमोरी-प्रबंधन, Arduino पर रैम मुक्त नहीं है

मैं एक चर को हटाकर रैम मुक्त करने की कोशिश कर रहा हूंइसके बाद मुफ्त () फ़ंक्शन के साथ उपयोग किया जाता है, फिर भी मेरी रैम सफाई नहीं कर रही है। मुझे लगता है कि कोई कचरा सफाई नहीं है? कोड के अनुभाग से बाहर निकलने के बाद अंतरिक्ष साफ़ हो जाता है (स्कॉप्ड अगर-स्टेटमेंट, जबकि-लूप या फ़ंक्शन), लेकिन मुक्त () कथन स्वयं नहीं।

मैं रैम की जांच करने के लिए निम्नलिखित कर रहा हूं:

int freeRam () {
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}

इसके अतिरिक्त, इस तरह की स्मृति को "मुक्त" कैसे किया जाएगा?

उत्तर:

उत्तर № 1 के लिए 7

आप उम्मीद नहीं कर सकते हैं __brkval सिर्फ इसलिए कि आप बुलाया free() एक मेमोरी ब्लॉक पर। मेमोरी ब्लॉक होगा चिह्नित मुफ्त के रूप में और पुन: उपयोग के लिए उपलब्ध है, लेकिन सामान्य रूप से __brkval केवल एक दिशा में ही कदम होगा ज्यादा से ज्यादा आपके प्रोग्राम का उपयोग किसी भी समय स्मृति की मात्रा।