द्वारा स्टैक आकार आयाम एक रिक्त कार्य का उपयोग कर रहे एक सी ++ प्रोग्राम के लिए, मैं इस फ़ंक्शन द्वारा कब्जे वाले गतिशील स्टैक आकार का मूल्यांकन कैसे कर सकता हूं?रिकर्सिव फ़ंक्शन
उत्तर
void recursive_function()
{
int dummy;
cout << "stack = " << &dummy << '\n';
...
}
घड़ी ढेर उपयोग के रूप में &dummy
वृद्धि के मूल्य (या गिर अगर आपके ढेर नीचे की ओर बढ़ता है) तक जाता है।
या यदि आप एक गैर रैखिक स्टैक का उपयोग करते हैं तो स्मृति के चारों ओर कूदता है। –
ठीक है, कम से कम ओपी को पता चलेगा कि उनके पास किस तरह का ढेर था। – john
अच्छा जवाब है, लेकिन मुझे लगता है कि ढेर आकार बढ़ने के साथ 'और डमी' नीचे आते हैं ... –
#include <stdio.h>
#include <stdlib.h>
ssize_t recurse(int limit, char* stack = NULL)
{
char dummy;
if (stack == NULL)
stack = &dummy;
if (limit > 0)
return recurse(limit - 1, stack);
else
return stack - &dummy;
}
int main(int argc, char* argv[])
{
int limit = atoi(argv[1]);
printf("depth %d took %zd bytes\n", limit, recurse(limit));
return EXIT_SUCCESS;
}
अगर मैं 4
के साथ इस चलाने मैं:
depth 4 took 192 bytes
दूसरों टिप्पणी में सुझाव दिया है के रूप में, यह पूरी तरह से पोर्टेबल नहीं है, लेकिन यह वर्तमान प्रणालियों के एक काफी विस्तृत विविधता पर काम करना चाहिए। ध्यान दें कि कुछ "अजीब" होने पर परिणाम प्रकार पर हस्ताक्षर किए जाते हैं - आप निश्चित रूप से इसे स्वच्छता के लिए जांच सकते हैं (कहें, सुनिश्चित करें कि यह 5 और 500 के बीच है, इस पर निर्भर करता है कि आपके फ़ंक्शन में और क्या है)।
- 1. रिकर्सिव फ़ंक्शन
- 2. रिकर्सिव फ़ंक्शन
- 3. रिकर्सिव फ़ंक्शन
- 4. रिकर्सिव फ़ंक्शन
- 5. PHP रिकर्सिव फ़ंक्शन समस्या?
- 6. जावास्क्रिप्ट रिकर्सिव फ़ंक्शन संदर्भ
- 7. एसिंक्रोनस रिकर्सिव फ़ंक्शन
- 8. जावा रिकर्सिव फ़ंक्शन
- 9. एंगुलरजेएस, रिकर्सिव फ़ंक्शन
- 10. एक रिकर्सिव फ़ंक्शन
- 11. PHP - एक रिकर्सिव फ़ंक्शन
- 12. PHP रिकर्सिव फ़ंक्शन हटाएं
- 13. JQuery रिकर्सिव फ़ंक्शन?
- 14. रिकर्सिव बेनामी फ़ंक्शन Matlab
- 15. रिकर्सिव फ़ंक्शन: कॉल php फ़ंक्शन स्वयं
- 16. स्ट्रिंग मैनिपुलेशन या रिकर्सिव फ़ंक्शन?
- 17. पूंछ-रिकर्सिव फ़ंक्शन पर StackOverflowError
- 18. गणना अभिव्यक्तियों में रिकर्सिव फ़ंक्शन
- 19. रिकर्सिव फ़ंक्शन एक स्टैक ओवरफ़्लो
- 20. वर्तमान में अज्ञात रिकर्सिव फ़ंक्शन
- 21. मैं रिकर्सिव अनाम फ़ंक्शन कैसे लिखूं?
- 22. कई प्रकार के साथ रिकर्सिव टेम्पलेट फ़ंक्शन
- 23. क्या निम्न फ़ंक्शन पूंछ रिकर्सिव है?
- 24. मेरा रिकर्सिव फ़ंक्शन क्यों नहीं लौटाता है?
- 25. जावास्क्रिप्ट में रिकर्सिव स्ट्रिंग रिवर्सल फ़ंक्शन?
- 26. इस सिंक्रोनस रिकर्सिव फ़ंक्शन को एसिंक्रोनस
- 27. रिकर्सिव फ़ंक्शन में संदर्भ द्वारा PHP पास
- 28. रिकर्सिव क्रमपरिवर्तन फ़ंक्शन हमेशा खाली सूची
- 29. रिकर्सिव फ़ंक्शन प्रकारों का मॉडल कैसे करें?
- 30. रिकर्सिव फ़ंक्शन, स्टैक ओवरफ़्लोज़, और वाई-कॉम्बिनेटर्स
यह फ़ंक्शन कितनी बार दोहराता है? –
@delnan अगर बाइट्स की सही संख्या: तो वह 42 है। –
हार्डवेयर/ओएस/कंपाइलर/अनुकूलन स्तर पर पूरी तरह से निर्भर है। इस प्रकार उत्तर देने के लिए लगभग असंभव। और अर्थहीन। तुम क्यो फिकर करते हो। यदि आपके ढेर को उड़ाने की भी संभावना है तो आपको एक पुनरावृत्ति समाधान का उपयोग करना चाहिए। –