함수를 정의한 후 포인터를 이용해서 두 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");
}
댓글 0