में एक बहुत बड़ी 2 डी सरणी के आसपास कैसे काम करें I 800x800 आकार की 2 डी int सरणी बनाने की आवश्यकता है। लेकिन ऐसा करने से एक ढेर ओवरफ्लो (हा हा) बनाता है।सी ++
मैं सी ++ में नया हूं, तो क्या मुझे वैक्टर के वेक्टर की तरह कुछ करना चाहिए? और बस एक कक्षा में 2 डी सरणी encapsulate?
विशेष रूप से, यह सरणी एक ग्राफिक्स प्रोग्राम में मेरा zbuffer है। मुझे स्क्रीन पर प्रत्येक पिक्सेल के लिए एक जेड वैल्यू स्टोर करने की आवश्यकता है (इसलिए 800x800 का बड़ा आकार)।
धन्यवाद!
आपको स्मृति को 'नया' करने की आवश्यकता नहीं है। संभवतः ज़बफर को कार्यों में रहने की आवश्यकता होगी। इसे वैश्विक घोषित करें (या यदि आपने मुझे लगता है कि कक्षा में कुछ वर्ग के लिए अव्यवस्थित है)। आप कुछ ऐसा कर सकते हैं जैसे 'int zBuffer [WIDTH * HEIGHT];' यह मानते हुए कि चौड़ाई और ऊंचाई बदल नहीं है। – Mark
अनुमोदित, लेकिन मैं वैश्विक का उपयोग करने का सुझाव नहीं दे रहा हूं क्योंकि यह सामान्य रूप से एक अच्छा समाधान नहीं है - यह आपको दायरे और जीवनकाल के मामले में अधिक लचीलापन नहीं देता है। यह इस प्रश्नकर्ता के लिए अच्छा काम कर सकता है इसलिए आगे बढ़ें और अपना जवाब छोड़ दें। –