C ++ không cho phép chuyển toàn bộ mảng làm đối số cho một hàm. Tuy nhiên, bạn có thể chuyển một con trỏ đến một mảng bằng cách chỉ định tên của mảng mà không có chỉ mục. Có ba cách để truyền một mảng 2D cho một hàm -
Chỉ định kích thước cột của mảng 2D
void processArr(int a[][10]) { // Do something }
Truyền mảng chứa con trỏ
void processArr(int *a[10]) { // Do Something } // When callingint *array[10]; for(int i = 0; i < 10; i++) array[i] = new int[10]; processArr(array);
Chuyển một con trỏ đến một con trỏ
void processArr(int **a) { // Do Something } // When calling: int **array; array = new int *[10]; for(int i = 0; i <10; i++) array[i] = new int[10]; processArr(array);
ví dụ
#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; }
Đầu ra
Điều này sẽ cung cấp đầu ra -
Phần tửelement at index 1,1 is 3