분류 | 게시판 |
베스트 |
|
유머 |
|
이야기 |
|
이슈 |
|
생활 |
|
취미 |
|
학술 |
|
방송연예 |
|
방송프로그램 |
|
디지털 |
|
스포츠 |
|
야구팀 |
|
게임1 |
|
게임2 |
|
기타 |
|
운영 |
|
임시게시판 |
|
/* 일단 소스부터 보시죠 */
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를 사용하는 것까지는 책을 통해 알았습니다.
구조체 배열은 어떻게 처리해야할지 책을 찾아도, 구글링을 해도 시원한 답이 없어서 오유 능력자님들에게 도움을 구합니다.
죄송합니다. 댓글 작성은 회원만 가능합니다.