Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ 함수에 2차원 배열 전달


C++에서는 전체 배열을 함수에 대한 인수로 전달할 수 없습니다. 그러나 인덱스 없이 배열 이름을 지정하여 배열에 대한 포인터를 전달할 수 있습니다. 2D 배열을 함수에 전달하는 세 가지 방법이 있습니다 -

2D 배열의 열 크기 지정

void processArr(int a[][10]) {
   // Do something
}

포인터가 포함된 전달 배열

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);

포인터에 포인터 전달

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);

#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