] चर को कहां स्टोर करने के लिए यह निर्धारित करते हैं, किसी को स्टैक और हीप के बीच तय करना होगा। मुख्य अंतर चर के जीवनकाल में निहित है। ये चर स्वचालित रूप से फ़ंक्शन रिटर्न पर नष्ट हो जाते हैं। कोड स्निपेट:
वर्ग बात;
बात* फू ()
{
int a; // स्टैक-आवास पूर्णांक
बात बी; // स्टैक-एलोकेटेड थिंग ऑब्जेक्ट
Thingy *पॉइंटरटॉब = & b; // स्टैक-एलोकेटेड ऑब्जेक्ट के लिए पॉइंटर
Thingy *pointertoc = new thingy (); // हीप-आवंटित थिंग ऑब्जेक्ट
// सुरक्षित: हीप-एलोकेटेड थिंग आउटलाइज़ फू ()
लौटें पॉइंटरटोक;
// असुरक्षित: स्टैक-आवंटित चीज़ फू () रिटर्न पर नष्ट हो जाएगी
लौटें पॉइंटरटॉब;
}
इस उदाहरण में:
a और b को स्टैक पर संग्रहीत किया जाता है क्योंकि वे फ़ू ()
पॉइंटरटोब को एक स्टैक-ऑलोक्टेड ऑब्जेक्ट के लिए अंकित करते हैं। foo ()। अंतर्निहित मशीन। "हीप" और "स्टैक" कंपाइलर आविष्कार हैं, और कंप्यूटर की मेमोरी केवल पते की एक सरणी है। कॉल स्टैक और कॉलिंग कन्वेंशन जैसी अवधारणाओं की जांच करके, कोई यह समझ सकता है कि मशीन कार्यों को कैसे निष्पादित करती है और मेमोरी का प्रबंधन करती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3