Computer >> Máy Tính >  >> Lập trình >> C ++

Truyền mảng hai chiều cho một hàm C ++


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