2차원 배열을 매개변수로 넘겨줄때와, 2차원 포인터를 넘겨줄 때 형식이 다르다.
1. 2차원 배열인 경우
void example (int array[][10]){
//...
}
int main() {
int array[10][10];
example(array);
return 0;
}
C++
복사
첫 번째 대괄호 안에는 세로 크기를 지정하더라도 무시된다
2. 배열을 포함하는 포인터 경우
void example (int *array[10]){
//...
}
int main() {
int *array[10];
for(int i=0; i<10; i++)
array[i] = new int[10];
example(array);
return 0;
}
C++
복사
3. 2차원 포인터인 경우
void example (int **array){
//...
}
int main() {
int **array;
array = new int *[10];
for(int i=0; i<10; i++)
array[i] = new int[10];
example(array);
return 0;
C++
복사
이 글을 쓰는 이유는 내가 main 에서 2차원 배열을 선언하고 2차원 포인터로 매개변수를 받았기 때문이다^^;; 2차원 배열과 2차원 포인터는 동일하지 않다.
에러가 떴었다~