C++-এ পুরো অ্যারে ফাংশনে পাস করা যায় না, পয়েন্টার পাস করা হয়। ২D অ্যারে পাস করার তিনটি পদ্ধতি:
১. কলাম সাইজ ফিক্সড (Row unspecified)
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);
৩. পয়েন্টার-টু-পয়েন্টার (Double Pointer)
void processArr(int **a) { ... }
// কল:
int **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] = {{0,1},{2,3}};
processArr(arr);
return 0;
}
আউটপুট
element at index 1,1 is 3
সুপারিশ: আধুনিক C++-এ std::vector<std::vector<T>> বা std::array<std::array<T, Cols>, Rows> ব্যবহার করুন।