मैं काम पर स्टैक से बाहर निकला, यह एक डेटाबेस था और यह कुछ धागे चला रहा था, मूल रूप से पिछले डेवलपर ने स्टैक पर एक बड़ा सरणी फेंक दिया था, और स्टैक वैसे भी कम था। सॉफ़्टवेयर को Microsoft Visual Studio 2015 का उपयोग करके संकलित किया गया था।
हालांकि थ्रेड स्टैक से बाहर चला गया था, यह चुपचाप विफल रहा और जारी रहा, यह केवल स्टैक पर डेटा की सामग्री का उपयोग करने के लिए आने पर बह निकला।
सबसे अच्छी सलाह जो मैं दे सकता हूं, वह स्टैक पर सरणियों की घोषणा नहीं करना है - विशेष रूप से जटिल अनुप्रयोगों में और विशेष रूप से थ्रेड्स में, बजाय ढेर का उपयोग करने के। यह वही है जो इसके लिए है;)
यह भी ध्यान रखें कि स्टैक की घोषणा करते समय यह तुरंत विफल नहीं हो सकता, लेकिन केवल एक्सेस पर। मेरा अनुमान है कि कंपाइलर "आशावादी" खिड़कियों के नीचे स्टैक की घोषणा करता है, यानी यह मान लेगा कि स्टैक घोषित किया गया है और पर्याप्त रूप से आकार है जब तक कि इसका उपयोग नहीं होता है और तब पता चलता है कि स्टैक नहीं है।
अलग-अलग ऑपरेटिंग सिस्टम में अलग-अलग स्टैक डिक्लेरेशन पॉलिसी हो सकती हैं। कृपया टिप्पणी छोड़ें यदि आप जानते हैं कि ये नीतियां क्या हैं।