2010-04-16 13 views
10

मेरे पास एक कक्षा है जिसमें एक स्थिर सदस्य है। जैसा कि मैं समझता हूं, कक्षा के सभी उदाहरणों के लिए सभी स्थिर सदस्य आम हैं, जिसका अर्थ है कि स्थिर सदस्यों को केवल एक बार स्मृति आवंटित की जाएगी। यह स्मृति कहां आवंटित की जाती है (ढेर या ढेर) और यह स्मृति कब आवंटित की जाती है?स्थिर सदस्य को स्मृति प्राप्त होने पर

संपादित करें: यह स्मृति एक आवृत्ति स्तर स्मृति से अलग है। इस स्मृति को संदर्भित कैसे किया जाता है? क्या संकलन के समय यह स्मृति आवंटित की जाती है?

+3

http://stackoverflow.com/questions/337019/hows-memory-allocated-for-a-static-variable – James

उत्तर

4

स्टेटिक सदस्य हमेशा वैश्विक ढेर में भी संदर्भित होते हैं, यहां तक ​​कि संदर्भ प्रकार के सदस्य भी। हालांकि, यह ढेर सामान्य कचरा इकट्ठा ढेर नहीं है। यहां और जानें: http://www.codeproject.com/KB/cs/codeconcepts.aspx

0

यह स्मृति ढेर पर आवंटित की गई है। प्रत्येक प्रकार में स्थिर कन्स्ट्रक्टर होता है जो प्रकार के प्रारंभिक कार्य करता है। इसे एक्सेस करने से पहले इसे निष्पादित किया जाता है।

+0

का संभावित डुप्लिकेट यह स्मृति एक आवृत्ति स्तर स्मृति से अलग है। इस स्मृति को संदर्भित कैसे किया जाता है। और संकलन के समय यह स्मृति आवंटित हो जाती है। –

1

स्थिर सदस्यों के लिए स्मृति आवंटन तब किया जाता है जब उस समय के लिए उपयोग किया जाता है, इसे एक चर के लिए घोषणा या स्थिर सदस्य तक पहुंच के रूप में किया जाना चाहिए।

जैसा कि पहले से ही कहा गया है, स्थिर सदस्यों के लिए स्मृति आवंटन ढेर पर किया जाता है।

संबंधित मुद्दे