[c++] 2차원 배열/포인터 매개변수로 넘기기

모험가·2022년 6월 11일
0

c++

목록 보기
3/4

2차원 배열을 매개변수로 넘겨줄때와, 2차원 포인터를 넘겨줄 때 형식이 다르다.

1. 2차원 배열인 경우

void example (int array[][10]){
    //...
}

int main() {
    int array[10][10];
    example(array);
    return 0;
}

첫 번째 대괄호 안에는 세로 크기를 지정하더라도 무시된다.

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

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;

이 글을 쓰는 이유는 내가 main 에서 2차원 배열을 선언하고 2차원 포인터로 매개변수를 받았기 때문이다^^;; 2차원 배열과 2차원 포인터는 동일하지 않다.

하하 나의 에러~

profile
부산 싸나이의 모험기

0개의 댓글