/* 일단 소스부터 보시죠 */
typedef struct test
{
int decimal;
char check;
} test;
test* Make (term source[]);
int main (void)
{
test a1[100];
test a2[100][100];
a2[0] = a1; //중간과정 생략하고 아무튼 a2[0]에 a1을 넣음.
a2[1] = Make (a2[0]);
return 0;
}
test* Make (term source[])
{
test *temp;
//temp 초기화는 했음.
source[0].check = '1';
temp.decimal = 1;
return temp;
}
/* 여기까지가 소스 */
이렇게 하면 함수 Make에서의 source는 a2[0]의 "복사값"이 되는 건 알고 있습니다.
처음 작성할 때는 복사값만으로 충분했으니까요.
그런데, " source[0].check = '1'; " 이 부분을 추가하면서 문제가 생겼습니다.
일반 자료형 배열이라면 인자를 int source[]로 넘겨받아 함수에서 값을 바꾸면 원본도 바뀌거든요.
배열이 아니라 그냥 구조체면 함수 인자에 *source , 함수 내에서는 source->check를 사용하는 것까지는 책을 통해 알았습니다.
구조체 배열은 어떻게 처리해야할지 책을 찾아도, 구글링을 해도 시원한 답이 없어서 오유 능력자님들에게 도움을 구합니다.