इस प्रश्न को मुझसे एक साक्षात्कार में पूछा गया था।क्या होता है जब हेप मैनेजर द्वारा आवंटित स्मृति मुक्त करने का प्रयास किया जाता है, जो पूछने के लिए अधिक आवंटित करता है?
मान लीजिए कि char * p = malloc (n) एन से अधिक निर्दिष्ट करता है, कहें कि स्मृति के एन बाइट आवंटित किए गए हैं और मुक्त (पी) पी को आवंटित स्मृति को मुक्त करने के लिए उपयोग किया जाता है।
क्या प्रबंधक प्रबंधक इतनी दोषपूर्ण आवंटन कर सकता है? अब क्या होता है, क्या एन बाइट मुक्त हो जाएंगे या एन बाइट मुक्त हो जाएंगे?
क्या यह जानने के लिए कोई तरीका है कि कितनी मेमोरी मुक्त हो जाती है?
संपादित
वहाँ किसी भी विधि कितनी स्मृति मुक्त हो जाता है मिल रहा है?
कुछ नहीं से बेहतर, के रूप में "फ्रेड लार्सन" द्वारा बताया
mallinfo() कुछ प्रकाश डाला सकता है
आपको ऐसा लगता है कि ऐसा आवंटन दोषपूर्ण क्यों है? भले ही कितने "वास्तविक" बाइट्स 'malloc() 'आवंटित किए गए हों, आप केवल' n' बाइट्स का उपयोग कर सकते हैं, और 'मुक्त()' आवंटित बाइट्स को मुक्त कर देंगे। अधिकतर 'मॉलोक' कार्यान्वयन अधिक जगह आवंटित करते हैं, फिर दक्षता कारणों के लिए अनुरोध किया जाता है। एक कार्यान्वयन 'मॉलोक' और 'मुक्त' को परिभाषित करता है, और परिभाषा के अनुसार, उन्हें आवंटन की योजना पर सहमत होना होता है। –