(간단하게 그냥 a구조체와 b구조체를 res구조체에 넣어 주기 위함입니다.
메모리 를 건드려서 코딩해 봤는데...선배님이 도와줘서 겨우 해결했는데 이해가 안되네요...ㅠ
information* sum(information a[], information b[], information res[]) //information* sum <---구조체 함수라고 하나요?
//구조체를* sum해줘서저 인자로(a구조체 b구조체 c구조체 이렇게 넘겨주는것은 처음봤습니다.
//이거에 대해 자세한 설명좀 부탁드립니다..
{
int size = sizeof(a) + sizeof(b)+2; //sizeof(a)를 해준 이유 설명좀 부탁드립니다. 디버깅 했더니
크기가 4가나오는데 여기서 4가 byte인가요? 선배님 말로는 배열크기가 4라고 하는데...
int i;
for(i=0 ;i<sizeof(a)+1; i++)
{
strcpy(res[i].name, a[i].name);
strcpy(res[i].jong, a[i].jong);
strcpy(res[i].price, a[i].price);
res[i].number = a[i].number;
}
for(int j=0; i<size; j++, i++){
strcpy(res[i].name, b[j].name);
strcpy(res[i].jong, b[j].jong);
strcpy(res[i].price, b[j].price);
res[i].number = b[j].number;
}
return res;
}
//sizeof(a)를 해준 이유 설명좀 부탁드립니다.제가 a구조체 안에
예를들어{{1,"이순신","거북선","임진왜란"},{...............};이런식으로 줬고
b구조체 안에는 {{2,"도쿠가와","말","일본"}},{...........};이런식으로 줬고
C구조체에
{{1,"이순신","거북선","임진왜란"},{...............};
{{2,"도쿠가와","말","일본"}},{...........};
이런식으로 a구조체와 b구조체를 합쳐 준것을 하기 위하여 해줬습니다.
니가 짠거 아니지? [핡]
a구조체 행으로 치면 5줄 b구조체도 5줄...
제가 짰는데요..선배님이 도와주긴 했습니다.
그러니깐 a구조체 출력과 b구조체 출력까지 다 해줬는데 그 두개를 합치는 작업이 어려워서 선배한테 물어 봤더니 이렇게 짜줬습니다.
그리고 이해하라고 하시더라고요..근데 이해가 잘 안되서..선배는 가셨고..
설명좀 부탁드립니다 ㅠㅠ;;이해가;;
배열이 10개씩 있다 치고 처음에 a부터 res에 옮기니까 res[0]에 a[0], res[1]에 a[1]이런식으로 쭉 가는데 a에 들어있는거 까지만 가니까 a크기+1만큼 제안을 둠(i < sizeof(a)) 그다음에 b는 처음부터 불러와야 하니까 j=0하고, res는 a넣던거 뒤부터 시작해야 하니까 그대로 순서를 i로 놓고 옮김(그래서 a가 10개면 11부터 시작해야하니까 sizeof(a)+1 한걸로 보임) 그다음은 a한거처럼 계속 옮기면 끝인것 같다. 그런대 딱히 프로그래밍 배운거 아니라 추측만 한거니까 정확하진 안을껄