함수를 정의한 후 포인터를 이용해서 두 2차원 배열을 리턴하고 싶은데 도저히 모르겠네요.

두 1차원 값을 포인터로 리턴하기는 성공했는데.. 

아무리 생각해도 5~6번째 줄의

int(*pW1)[2] = W1; 

int(*pW2)[2] = W2;

포인터를 쓰러면 재정의를 해야한다고 알고 있어서 이렇게 썻는데, 디버그할때 'pW1 정식매개변수 재정의' 오류가 뜹니다.


아래는 소스입니다.


#include<stdio.h>

int func(int W1[2][2], int W2[2][2], int(*pW1)[2], int(*pW2)[2]) {

W1[1][1] = 9;

W2[1][1] = 9;

int(*pW1)[2] = W1; 

int(*pW2)[2] = W2;

return 0;

}

int main() {

int W1[2][2] = { {1,2},{3,4} };

int W2[2][2] = { { 4,3 },{ 2,1 } };

int (*pW1)[2] = { 0, };

int (*pW2)[2] = { 0, };

func(W1, W2, &pW1, &pW2);

printf("W1의 2,2 = %d\n", W1[1][1]);

printf("pW1의 2,2 = %d\n", pW1[1][1]);

printf("W2의 2,2 = %d\n", W2[1][1]);

printf("pW2의 2,2 = %d\n", pW2[1][1]);

printf("pW2의 1,1 = %d\n", pW2[0][0]);

system("pause");

}