프로그래밍/C

2차원 배열의 포인터

천사친구 2021. 10. 30. 12:34

2차원 배열의 포인터를 사용하는 방법

// 배열의 포인터

#include <stdio.h>

int main() {
    int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
    int (*parr)[3];     // 크기가 3 인 배열을 가리키는 포인터
                        // 배열의 한 행의 크기를 전달한다
                        // 2차원 배열에서의 배열의 이름도 배열의 첫번째 행을 가리키는
                        // 포인터로 형 변환 되며,
                        // 첫번째 행은 크기가 3인 1차원 배일이다.

    parr = &arr;        // parr 이 arrd 을 가리키게 한다.

    printf("parr[1][2] : %d , arr[1][2] : %d\n", parr[1][2], arr[1][2]);

    return 0;
}

 

잘못된 예

// 배열의 포인터 - 잘못된 예

#include <stdio.h>

int main() {
    int arr[2][3];
    int brr[10][3];
    int crr[2][5];

    int(*parr)[3];

    parr = arr;     // OK
    parr = brr;     // OK
    parr = crr;     // crr 의 첫번째 행의 크기가 3이 아니므로 잘못됨

    return 0;
}