हां। बेशक यह आपके सिस्टम की पता स्थान से सीमित है। यह भी स्थान की मात्रा अपने ओएस, जो आमतौर पर अपने कार्यक्रम प्रारंभ होने के बाद बदला नहीं जा सकता लेकिन पहले से बदला जा सकता है (या तो शुरू प्रक्रिया के द्वारा, या निष्पादन के गुणों के द्वारा) द्वारा ढेर करने के लिए आवंटित द्वारा सीमित है। एक त्वरित नज़र में, मेरे ओएस एक्स सिस्टम पर अधिकतम स्टैक आकार 8 एमआईबी है और लिनक्स पर यह 10 एमआईबी है। कुछ प्रणालियों पर, आप शुरू होने वाले प्रत्येक अलग-अलग धागे को अलग-अलग स्टैक आवंटित भी कर सकते हैं, हालांकि यह सीमित उपयोगिता है। अधिकांश कंपाइलरों के पास एक और सीमा होती है कि वे एक स्टैक फ्रेम में कितना अनुमति देंगे।
एक आधुनिक डेस्कटॉप पर, मैं एक 1k ढेर आवंटन के बारे में चिंता नहीं करता जब तक कि समारोह पुनरावर्ती थे। यदि आप ओएस कर्नेल के अंदर उपयोग के लिए एम्बेडेड कोड या कोड लिख रहे हैं, तो यह एक समस्या होगी। कॉन्फ़िगरेशन विकल्पों के आधार पर लिनक्स कर्नेल में कोड केवल 64 कीबी स्टैक या उससे कम की अनुमति है।
स्रोत
2010-01-28 06:17:02
चुनने 1024 पूरी तरह से मनमाना है, एक 512 बाइट चर भी एक "त्रुटि के कारण" हो सकता है। और 2048 बाइट वेरिएबल इसे दो बार संभव नहीं बनाता है। इस सलाह को नमक के पाउंड से लें। –