इस पोस्ट में, हम स्टैक (Stack) और हीप (Heap) के बीच अंतर को समझेंगे।
स्टैक (Stack)
यह एक रैखिक डेटा संरचना है।
मेमोरी एक सन्निहित (contiguous) ब्लॉक में आवंटित की जाती है।
स्टैक के लिए मेमोरी कंपाइलर के निर्देशों का उपयोग करके स्वचालित रूप से आवंटित और डिएलोकेट की जाती है।
स्टैक बनाने और बनाए रखने में कम लागत आती है।
इसे लागू करना आसान है।
यह आकार में निश्चित है; इसलिए यह लचीला नहीं है।
इसका एकमात्र नुकसान मेमोरी की कमी है, क्योंकि यह आकार में निश्चित है।
यदि सभी ब्लॉक कब्जे में नहीं हैं, तो मेमोरी बर्बाद भी होती है।
स्टैक के तत्वों को एक्सेस करने में कम समय लगता है।
इसमें संदर्भ की उत्कृष्ट स्थानीयता (excellent locality of reference) है।
हीप (Heap)
यह एक पदानुक्रमित डेटा संरचना है।
मेमोरी यादृच्छिक (random) तरीके से आवंटित की जाती है।
मेमोरी प्रोग्रामर द्वारा मैन्युअल रूप से आवंटित और डिएलोकेट की जाती है।
हीप संरचना बनाना और बनाए रखना महंगा है।
हीप संरचना लागू करना मुश्किल है।
हीप के तत्वों को एक्सेस करने में अधिक समय लगता है।
हीप का नुकसान मेमोरी विखंडन (fragmentation of memory) है।
हीप में आकार बदलना (Resizing) संभव है।
इसलिए, मेमोरी बर्बाद नहीं होती।
इसमें संदर्भ की पर्याप्त स्थानीयता (adequate locality of reference) है।
मुख्य मेमोरी के अंदर एक प्रक्रिया -
