एक एप्लिकेशन को ओएस द्वारा मेमोरी की एक सीमा दी जाती है। आम तौर पर, एप्लिकेशन को मेमोरी का अनुरोध करना पड़ता है लेकिन उस कार्यक्षमता को भाषा की वजह से प्रोग्रामर को अस्पष्ट किया जा सकता है।
सी जैसी भाषाएं विशिष्ट आकारों के लिए ब्लॉक अनुरोधों की अनुमति देती हैं, जबकि अन्य भाषाओं जैसे सी ++, सी #, और जावा जैसे कीवर्ड के उपयोग के माध्यम से अनुरोधों की अनुमति देते हैं new
। प्रत्येक भाषा में मेमोरी आवंटित करने के कई तरीके हैं, इसलिए यह एक संक्षिप्त अवलोकन है। स्मृति को ओएस पर वापस करना या तो स्पष्ट रूप से या कचरा कलेक्टर के माध्यम से किया जा सकता है।
मेमोरी को एप्लिकेशन के भीतर एक्सेस करना इस बात पर निर्भर करता है कि इसे कैसे आवंटित किया गया था। C और C ++ इंगित करने के लिए पॉइंटर्स की अवधारणा का उपयोग करने के लिए सबसे अच्छे रूप में जाना जाता है / जहां स्मृति स्थित है, ट्रैक करने के लिए। अन्यथा, मेमोरी एक्सेस को उस वर्ग या चर के माध्यम से नियंत्रित किया जाता है जिसे बनाया गया था।
अधिकांश समय, आपको अपने प्रोग्राम के भीतर विशिष्ट मेमोरी एक्सेस के बारे में चिंता करने की आवश्यकता नहीं है। भाषा का निर्माण और ओएस प्रभावी रूप से आपके लिए चिंता का विषय है।
एक गेम में टाइमर का आपका उदाहरण एक शानदार उदाहरण है जहां आपको अंतर्निहित मेमोरी आवंटन के बारे में चिंता करने की आवश्यकता नहीं होगी। आपके पास टाइमर का प्रतिनिधित्व करने वाला एक चर होगा, और आप बस चर से पढ़ेंगे।
जब आप एप्लिकेशन लिख रहे हों, तो मेरा उत्तर प्रासंगिक है, जबकि zxcdw का उत्तर किसी अन्य एप्लिकेशन से संबंधित मेमोरी तक पहुंचने के लिए प्रासंगिक है। आपके LMGTFY शब्द "डीबगिंग" और "रिवर्स-इंजीनियरिंग" उस विषय में आगे की ओर झुकेंगे।
कुछ अतिरिक्त पढ़ने:
- कंप्यूटर मेमोरी पर विकिपीडिया लेख आपको चीजों का एक सभ्य अवलोकन देगा।
- फिर मेमोरी-मैप किए गए I / O पर विकिपीडिया लेख देखें जो कि चलने वाले यंत्रों की गहरी समझ प्राप्त करता है।
- अंत में, प्रत्येक ओएस दूसरों की तुलना में थोड़ी अलग तरीके से मेमोरी मैपिंग को कैसे हैंडल करेगा, इसके लिए बेहतर जवाब पाने के लिए वर्चुअल मेमोरी पर लेख देखें ।