c 초보자의 배열 포인터 관련 에러

조회수 541회

2차원 배열에 관한 문제를 풀다가 혼자서 막 풀어보려고 하다가 혼란스러운 부분이 생겨서 질문드립니다.

void changeArr(int*(*arr)[4])
{함수내용  생략}
int main ()
{
    int arr[4][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
    int i,j;
    int *(*ptr)[4];
    ptr = &arr;
    changeArr(&ptr);
    return 0;
}

제가 하려는 것은 arr를 포인터로 changeArr함수로 넘겨서 call by reference로, arr값에 변화를 주려고 합니다.

그래서 arr[4][4]의 포인터역할을 해줄 int* (*ptr)[4]를 선언했고 ptr이 arr의 주소값을 받을수 있도록 ptr = &arr를 선언해줬는데 컴파일을 할때마다 type이 다르다고 에러가 나옵니다.

제가 무엇을 잘못한걸까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)