हाल ही में जब मैं C या C ++ लिख रहा होता हूं, तो मैं अपने सभी चरों को स्टैक पर घोषित करूंगा क्योंकि यह जावा के विपरीत एक विकल्प है।
हालांकि, मैंने सुना है कि स्टैक पर बड़ी चीजों की घोषणा करना एक बुरा विचार है।
- आखिर ऐसा क्यों है? मुझे लगता है कि स्टैक ओवरफ्लो शामिल है, लेकिन मैं बहुत स्पष्ट नहीं हूं कि ऐसा क्यों होता है।
- स्टैक पर कितना सामान बहुत अधिक है?
मैं स्टैक पर 100MB फाइलें डालने की कोशिश नहीं कर रहा हूं, स्ट्रिंग बफ़र्स या जो भी उपयोग करने के लिए बस एक दर्जन किलोबाइट सरणियां हैं। क्या यह बहुत अधिक स्टैक उपयोग है?
(क्षमा करें यदि डुप्लिकेट है, तो स्टैक की खोज करना स्टैक ओवरफ्लो का संदर्भ देता है। यहां तक कि कॉल स्टैक टैग भी नहीं है, मैंने सिर्फ सार का उपयोग किया है।)
std::vector<int>
वैरिएबल ढेर जगह नहीं खाएगा, अधिकांश डेटा ढेर में है।