मुख्य प्रश्न प्रदर्शन के बारे में नहीं है, लेकिन अर्थशास्त्र, और क्या आपका कार्य संरचना में डेटा को संशोधित करता है।
यदि आपका फ़ंक्शन संरचना को संशोधित करता है, तो एक पॉइंटर पास करने से कॉलर को संरचना में परिवर्तित डेटा दिखाई देगा। इस मामले में, एक प्रतिलिपि पारित होने की संभावना गलत होगी, क्योंकि आपका फ़ंक्शन एक प्रतिलिपि को संशोधित करेगा जो संभवतः (अनुमानित रूप से) छोड़ा गया है। बेशक, यह संभव है कि आपका फ़ंक्शन डेटा को संशोधित करता है, लेकिन आप संशोधनों को मूल मानों को बदलने से बचाने के लिए, एक प्रतिलिपि सही काम नहीं करना चाहते हैं।
यदि आपका फ़ंक्शन संरचना को संशोधित नहीं करता है, तो मानों की प्रतिलिपि बनाने का कोई कारण नहीं है, क्योंकि उन्हें केवल पढ़ा जाएगा।
यदि आप संरचनाओं को पास करने वाले पॉइंटर्स की अवधारणा से सहज नहीं हैं, तो आपको कुछ अभ्यास करना चाहिए, क्योंकि यह सी और सी ++ में संरचनाओं से निपटने का एक सामान्य तरीका है।
जहां तक प्रदर्शन चलता है, संरचना की प्रतिलिपि बनाने के लिए यह और अधिक काम है, लेकिन यह चीजों की योजना में काफी मामूली है। पहले अपने कोड के अर्थशास्त्र पर अपना ध्यान रखें।
स्रोत
2008-11-04 11:31:00
मैं जोड़ता हूं कि गैर-0 नल पॉइंटर्स और भी परेशान हैं। – tloach
गैर-0 शून्य पॉइंटर्स क्या हैं? – Motti
int * ohoh = new int; ओह हटाएं; cout << ओह; // गैर-0 शून्य सूचक – MattyT