] स्टैक का उपयोग स्थानीय चर और फ़ंक्शन मापदंडों को संग्रहीत करने के लिए किया जाता है, जबकि ढेर का उपयोग गतिशील मेमोरी आवंटन के लिए किया जाता है। यह आमतौर पर कम मेमोरी पते में स्थित होता है और इसका उपयोग अस्थायी डेटा आवंटित करने के लिए किया जाता है जो किसी फ़ंक्शन या ब्लॉक के लिए स्थानीय हैं। जब कोई फ़ंक्शन या ब्लॉक दर्ज किया जाता है, तो उसके स्थानीय चर और फ़ंक्शन मापदंडों को स्टैक पर धकेल दिया जाता है। जब फ़ंक्शन लौटता है या ब्लॉक बाहर निकलता है, तो डेटा को स्टैक से पॉप किया जाता है। हालाँकि, यह एक सीमित संसाधन भी है। स्टैक पर बहुत अधिक डेटा आवंटित करने से स्टैक ओवरफ्लो हो सकता है, जो एक गंभीर त्रुटि है। इसका उपयोग उन वस्तुओं को आवंटित करने के लिए किया जाता है जो 'नए' ऑपरेटर या मॉलोक () जैसे कार्यों का उपयोग करके रनटाइम पर बनाई जाती हैं। स्टैक के विपरीत, ढेर में एक निश्चित आकार नहीं होता है। यह आवश्यकतानुसार बढ़ सकता है और सिकुड़ सकता है। यह तब तक आवंटित किया जाता है जब तक कि इसे 'डिलीट' ऑपरेटर या फ्री () फ़ंक्शन का उपयोग करके स्पष्ट रूप से डीललेट किया जाता है। ढेर मेमोरी से निपटने में विफल रहने से मेमोरी लीक हो सकती है, जिससे प्रदर्शन की समस्याएं और सिस्टम क्रैश हो सकते हैं। यह मेमोरी को प्रबंधित करने के लिए एक कुशल तरीका प्रदान करता है और यह सुनिश्चित करता है कि विभिन्न प्रक्रियाएं एक -दूसरे की स्मृति को अधिलेखित न करें। दूसरी ओर, स्टैक आवंटन, केवल एक निश्चित मेमोरी क्षेत्र से डेटा को धक्का देने और पॉप करने की बात है। ऐसा इसलिए है क्योंकि मुख्य फ़ंक्शन एक वैश्विक फ़ंक्शन है और इसका डेटा किसी भी विशिष्ट फ़ंक्शन या ब्लॉक के लिए स्थानीय नहीं है। एक स्टैक ओवरफ्लो कार्यक्रम को दुर्घटनाग्रस्त होने का कारण बन सकता है, जबकि ढेर मेमोरी से बाहर निकलने से 'bad_alloc' अपवाद हो सकता है। इन शर्तों से बचने के लिए मेमोरी उपयोग को सावधानीपूर्वक प्रबंधित करना महत्वपूर्ण है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3