C++ पूरे ऐरे को फ़ंक्शन में आर्गुमेंट के रूप में पास करने की अनुमति नहीं देता। हालांकि, आप ऐरे के नाम को बिना इंडेक्स के निर्दिष्ट करके ऐरे का पॉइंटर पास कर सकते हैं। 2D ऐरे को फ़ंक्शन में पास करने के तीन तरीके हैं:
2D ऐरे के कॉलम का आकार निर्दिष्ट करें
void processArr(int a[][10]) { // कुछ करें }
पॉइंटर्स वाला ऐरे पास करें
void processArr(int *a[10]) { // कुछ करें } // कॉल करते समय int *array[10]; for(int i = 0; i < 10; i++) array[i] = new int[10]; processArr(array);
पॉइंटर टू पॉइंटर पास करें
void processArr(int **a) { // कुछ करें } // कॉल करते समय: int **array; array = new int *[10]; for(int i = 0; i <10; i++) array[i] = new int[10]; processArr(array);
उदाहरण
#include<iostream> using namespace std; void processArr(int a[][2]) { cout << "element at index 1,1 is " << a[1][1]; } int main() { int arr[2][2]; arr[0][0] = 0; arr[0][1] = 1; arr[1][0] = 2; arr[1][1] = 3; processArr(arr); return 0; }
आउटपुट
यह आउटपुट देगा:
element at index 1,1 is 3