सी में दो-आयामी सरणी में संदर्भ पास करना
सी में सरणी में हेरफेर करने वाले कार्यों के साथ काम करते समय, यह समझना महत्वपूर्ण है कि संदर्भ कैसे पास करें . यह आलेख इस मुद्दे पर चर्चा करेगा कि किसी फ़ंक्शन में द्वि-आयामी सरणी का संदर्भ कैसे पास किया जाए।
प्रदान किया गया त्रुटि संदेश, "त्रुटि: अपेक्षित ',' या '...' '*' से पहले टोकन," इंगित करता है कि द्वि-आयामी सरणी के संदर्भ को पारित करने के लिए वाक्यविन्यास गलत है। संकलन समय पर आयाम ज्ञात होने पर ऐसा करने का सही वाक्यविन्यास है:
void do_something(int (&array)[board_width][board_height]);
इस वाक्यविन्यास में, 'सरणी' से पहले '&' प्रतीक इंगित करता है कि सरणी का एक संदर्भ पारित किया जा रहा है। संदर्भ का उपयोग करके, फ़ंक्शन में सरणी का सीधा और परिवर्तनशील संदर्भ होता है, जिसका अर्थ है कि फ़ंक्शन के भीतर सरणी में किया गया कोई भी परिवर्तन मूल सरणी में दिखाई देगा।
वैकल्पिक रूप से, यदि आप एक पॉइंटर पास करना चाहते हैं पहले उप-सरणी के लिए, इस सिंटैक्स का उपयोग करें:
void do_something(int array[board_width][board_height]);
हालाँकि, यह विधि मूल सरणी का सीधा संदर्भ प्रदान नहीं करेगी, और फ़ंक्शन के भीतर किए गए कोई भी परिवर्तन मूल सरणी में प्रतिबिंबित नहीं होंगे।
यह ध्यान रखना महत्वपूर्ण है कि संदर्भों का उपयोग करते समय, फ़ंक्शन पैरामीटर का आकार (इस मामले में, 'बोर्ड_विड्थ') को हटाया जा सकता है क्योंकि संकलन समय पर आकार पहले से ही ज्ञात है। दूसरी ओर, एक पॉइंटर को पास करने के लिए पहले आयाम के आकार को निर्दिष्ट करने की आवश्यकता होती है, जैसा कि 'int arrayboard_width' में होता है।
संक्षेप में, C में एक द्वि-आयामी सरणी के संदर्भ को पास करने के लिए 'के उपयोग की आवश्यकता होती है &' फ़ंक्शन प्रोटोटाइप में ऐरे पैरामीटर से पहले और यह सुनिश्चित करता है कि फ़ंक्शन के भीतर किए गए परिवर्तन मूल ऐरे में प्रतिबिंबित होते हैं। इस अवधारणा को समझने से त्रुटियों से बचने में मदद मिलती है और कार्यों के भीतर उचित डेटा हेरफेर सुनिश्चित होता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3