#include <stdio.h>

void show_data(int (*)[4], int);
void show_data2(int **, int, int);

int main(void) {
        int arr1[2][7] = {{1, 2, 3, 4, 1, 2, 1}, {5, 6, 7, 8, 4, 3, 2}};
        int arr2[3][4] = {{1, 2}, {2}, {3}};

        show_data(arr2, 3);

        show_data2(arr1, 2, 7);
        show_data2(arr2, 3, 4);

        return 0;
}

void show_data(int (* ptr)[4], int a) {
        int i, j;

        printf(\"--- Start Print --- \\n\");

        for(i = 0; i < a; i++) {
                for(j = 0; j < 4; j++) {
                        printf(\"%d \", ptr[i][j]);
                }
                puts(\"\");
        }
}

void show_data2(int** ptr, int a, int b) {
        int i, j;
        int (* p)[b] = ptr;

        printf(\"--- Start Print --- \\n\");

        for(i = 0; i < a; i++) {
                for(j = 0; j < b; j++) {
                        printf(\"%d \", p[i][j]);
                }
                puts(\"\");
        }
}




코드가 중요한건 아니고

열혈강의 들어보니까

2차원 배열 전달할 때 

int (* ptr)[4] 이렇게 길이까지 전달하라고 하는데

int** ptr, int b 이렇게 함수로 전달해서 함수 안에서 

int (* p)[b] = ptr; 이렇게 정의해서 사용하면 안되는거야?

이클립스는 워닝은 뜨던데 프로그램은 잘 돌아가던데