मैं ऐसा करने के लिए एक और कारण जोड़ना चाहता हूं। यदि आप इस तरह से पॉइंटर्स का उपयोग कर रहे हैं, और यदि आपके पास एक बग है जो कंटेनर के तत्वों के क्रम पर निर्भर करता है, तो यह खोजना बहुत मुश्किल होगा। भले ही आपका प्रोग्राम पूरी तरह से निर्धारिती प्रतीत होता है, यह नहीं होगा। एक कंटेनर में तत्वों का क्रम मेमोरी आवंटक एल्गोरिदम पर निर्भर करता है, जो पूरी तरह से आपके नियंत्रण से बाहर है। यदि आप एक ही उदाहरण को अपने प्रोग्राम को पुनरारंभ किए बिना कई बार चलाते हैं, तो कुछ विफल हो सकते हैं और अन्य सफल होते हैं।
यह कड़वी अनुभव की आवाज़ है। मैंने इसे एक बार एक डीबगर परियोजना के साथ किया, जहां मेरे पास सी ++ प्रतीक से भरे कंटेनर थे। जब मुझे प्रतीकों को क्रमबद्ध करने की आवश्यकता होती है, तो मैं अलग-अलग प्रतीकों के साथ समाप्त होता हूं, लेकिन जिनके पास एक ही नाम है (अधिभारित कार्यों को सोचें) और जो कि अन्य सभी सम्मानों में समान थे। इसलिए, इस मामले में मैंने उन्हें प्रतीक वस्तु के पते से अंतिम उपाय के रूप में तुलना की। मैं कई बगों में भाग गया जो स्पष्ट रूप से गैर-निर्धारक थे, जहां गैर-निर्धारणा केवल इस घटना के कारण हुई थी। कभी-कभी समस्याओं को पुन: उत्पन्न करने के लिए 10 या 15 से अधिक प्रयास किए गए। अंत में मैंने पते से छंटाई को खत्म करने के लिए समय निकाला, और इससे मुझे लंबी अवधि में बहुत सारी परेशानी बचाई।
इसके साथ, मैं नहीं कहूंगा कि मैंने हाल ही में यह नहीं किया है। लेकिन हर बार जब मैं ऐसा करता हूं मुझे लगता है कि यह एक गलती है।
स्रोत
2012-12-06 18:35:40
बीटीडब्ल्यू, क्या आप पते को कुंजी के रूप में उपयोग करने के लिए कुंजी या मूल्य के रूप में उपयोग करना चाहते हैं? बाद के मामले में आपको एक कस्टम तुलनित्र – sellibitze
संबंधित प्रदान करना होगा: [यदि किसी सरणी के भीतर पॉइंटर पॉइंट की जांच हो रही है] (http://stackoverflow.com/questions/4657976/) – fredoverflow