लिनक्स पर, सी का उपयोग करके, मान लीजिए कि मेरे पास एक गतिशील रूप से निर्धारित n
है जो मुझे एक सरणी (int my_array[n]
) में स्टोर करने के लिए तत्वों की संख्या का नामकरण करता है, केवल थोड़े समय के लिए, कहें, एक फ़ंक्शन कॉल, जिससे कॉल किया गया फ़ंक्शन केवल छोटी मेमोरी (कुछ सौ बाइट्स) का उपयोग करता है।स्टैक ओवरफ़्लो तक शेष स्टैक का आकार
अधिकतर n
थोड़ा, कुछ दसवां है। लेकिन कभी-कभी n
बड़ा हो सकता है, जितना 1000 या 1'000'000।
मैं कैसे गणना करूं, चाहे मेरा ढेर n*o + p
बाइट्स बहने के बिना हो सकता है?
असल में: मेरे ढेर पर कितने बाइट्स छोड़े गए हैं?
संभावित डुप्लिकेट [सी में उपलब्ध स्टैक आकार की जांच करना) (http://stackoverflow.com/questions/53827/checking-available-stack-size-in -सी) –
@ ब्रेंडन लोंग, मैंने यह सवाल देखा, लेकिन जैसा कि यह कहता है "मैं जीसीसी 3.4.5 (मिंगव-स्पेशल विस्टा आर 3) के साथ मिनजीडब्ल्यू का उपयोग कर रहा हूं, जवाब कुछ हद तक विंडोज केंद्रित हैं। मेरा सवाल लिनक्स/* निक्स केंद्रित है। ;-) – kay
आप 'getrusage()' और 'getrlimit()' का उपयोग क्यों नहीं कर सकते? – sverre