आबंटित स्मृति मुक्त है?

विषयसूची:

आबंटित स्मृति मुक्त है?
आबंटित स्मृति मुक्त है?
Anonim

फंक्शन मॉलोक और कॉलोक का उपयोग करके आवंटित की गई मेमोरी को अपने आप डी-आवंटित नहीं किया जाता है। इसलिए जब भी गतिशील स्मृति आवंटन होता है, तो मुक्त विधि का उपयोग किया जाता है। यह स्मृति को मुक्त करके अपव्यय को कम करने में मदद करता है।

आवंटित स्मृति को कैसे मुक्त किया जाता है?

सी में, लाइब्रेरी फंक्शन मॉलोक का उपयोग ढेर पर मेमोरी के एक ब्लॉक को आवंटित करने के लिए किया जाता है। प्रोग्राम मेमोरी के इस ब्लॉक को एक पॉइंटर के माध्यम से एक्सेस करता है जो मॉलोक रिटर्न करता है। जब स्मृति की अब आवश्यकता नहीं है, सूचक को मुक्त करने के लिए पारित किया जाता है जो स्मृति को हटा देता है ताकि इसे अन्य उद्देश्यों के लिए उपयोग किया जा सके।

यदि आप आवंटित स्मृति को मुक्त नहीं करते हैं तो क्या होगा?

ज्यादातर मामलों में, प्रोग्राम से बाहर निकलने से ठीक पहले मेमोरी डिलोकेट करना व्यर्थ है। ओएस वैसे भी इसे पुनः प्राप्त करेगा। नि:शुल्क मृत वस्तुओं को स्पर्श करेगा और पृष्ठ करेगा; ओएस नहीं होगा। परिणाम: आवंटन की गणना करने वाले "लीक डिटेक्टरों" से सावधान रहें।

स्मृति आवंटित करना महंगा है?

स्मृति के बड़े ब्लॉकों को आवंटित करने और मुक्त करने की लागत का एक सरल माप यह निष्कर्ष निकालेगा कि प्रत्येक आवंटन/मुक्त जोड़ी के लिए इसकी लागत लगभग 7.5 μs है। हालांकि बड़े आवंटन के लिए प्रति एमबी तीन अलग-अलग लागतें हैं।

आवंटित मेमोरी स्पेस को फिर से आवंटित कर सकता है यदि हाँ तो कैसे?

Realloc फ़ंक्शन निम्नलिखित नियमों के आधार पर old_blk द्वारा निर्दिष्ट मेमोरी के ब्लॉक को आवंटित, पुन: आवंटित या मुक्त करता है: यदि old_blk NULL है, तो आकार बाइट्स की मेमोरी का एक नया ब्लॉक हैआवंटित। यदि आकार शून्य है, तो old_blk द्वारा इंगित मेमोरी को मुक्त करने के लिए फ्री फ़ंक्शन को कॉल किया जाता है।

सिफारिश की: