मुझे पता है कि स्टैक, हीप, कोड और डेटा जैसे अनुभाग हैं। ढेर/ढेर क्या वे स्मृति के उसी खंड का उपयोग करते हैं क्योंकि वे स्वतंत्र रूप से बढ़ सकते हैं? यह कोड अनुभाग क्या है? जब मेरे पास कोई फ़ंक्शन है तो यह स्टैक या कोड सेक्शन का हिस्सा है? यह प्रारंभिक/प्रारंभिक डेटा सेगमेंट क्या है?सी/सी ++ प्रोग्राम का मेमोरी लेआउट कैसा है?
क्या केवल स्मृति अनुभाग उपलब्ध है? जब मेरे पास एक कॉन्स वैरिएबल होता है, तो वास्तव में क्या हो रहा है यह है कि संकलक केवल स्मृति के रूप में स्मृति खंड को चिह्नित करता है या इसे केवल पढ़ने के लिए स्मृति खंड में डालता है।
स्थिर डेटा कहां रखा जाता है? वैश्विक डेटा कहां रखा जाता है?
इसके लिए कोई अच्छा संदर्भ/लेख?
मैंने सोचा कि मेमोरी अनुभाग और लेआउट ओएस स्वतंत्र हैं और इसे कंपाइलर के साथ और अधिक करना है। ढेर, ढेर, कोड, डेटा [प्रारंभ, अनियमित] खंड सभी ओएस में नहीं होता है? जब एक स्थिर डेटा होता है, तो क्या हो रहा है संकलक ने समझा है कि यह स्थिर है, अगला क्या है, यह क्या करेगा? यह संकलक है जो प्रोग्राम का प्रबंधन कर रहा है और यह जानना चाहिए कि सही क्या करना है? सभी कंपाइलर्स को आम मानकों का पालन नहीं करना चाहिए?
+1 - लेकिन यदि आप अलग-अलग प्रश्नों में इसे तोड़ देंगे तो आप कंक्रीट उत्तरों प्राप्त करने की संभावनाओं में काफी सुधार करेंगे। –
अगर हम समझ गए कि आप क्यों जानना चाहते हैं और (क्योंकि यह बहुत मंच/कंपाइलर विशिष्ट है) आप किस प्लेटफॉर्म को लक्षित कर रहे हैं, तो आपके प्रश्न का उत्तर देना आसान होगा। आम तौर पर हालांकि इन सवालों का जवाब एक सामान्य सी ++ प्रोग्रामर (कंपाइलर/डिवाइस चालक लेखकों जैसे अपवादों के साथ) के लिए प्रासंगिक नहीं है, ऑब्जेक्ट जीवन काल और विभिन्न प्रकार की वस्तुएं जीवन को कैसे प्रभावित करती हैं, यह और अधिक महत्वपूर्ण है। –