2차원 배열을 함수로 전달할 수가 없습니다
조회수 9507회
발생하는 문제 및 실행환경
2차원 배열을 함수로 받는
void myFunction(double** myArray){
myArray[x][y] = 5;
etc...
}
이런 함수가 있는데
double anArray[10][10];
myFunction(anArray)
같이 쓰니까 에러가 뜹니다.
배열의 이름은 포인터니까 anArray
는 double**
타입 아닌가요?
다른 사람들은 2차원 배열 잘만 넘기던데 왜 제 컴퓨터에서만 이러나요
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
double anArray[10][10];
의anArray
는double**
타입이 아니라double[10][10]
타입입니다.함수 인자로 2차원 배열을 받으려면 다음과 같이 형을 맞춰줘야 합니다
1. 인자가 2차원 배열인 경우
int array[10][10]; void passFunc(int a[][10]) { // ... } passFunc(array);
2. 인자가 배열을 포함하는 포인터인 경우
int *array[10]; for(int i = 0; i < 10; i++) array[i] = new int[10]; void passFunc(int *a[10]) //Array containing pointers { // ... } passFunc(array);
3. 인자가 포인터를 가리키는 포인터인 경우
int **array; array = new int *[10]; for(int i = 0; i <10; i++) array[i] = new int[10]; void passFunc(int **a) { // ... } passFunc(array);
댓글 입력