brenda524   3년 전

Q. swap함수를 통해 구조체변수를 교환하려면, 어떻게 swap함수를 짜야하나요???

seico75   3년 전

작성하신 것이 맞습니다만, 

struct dot 이 swap 함수 앞에 정의되어야 합니다.  지금은 아마도 컴파일 에러가 나겠네요. 

brenda524   3년 전

struct dot이 swap 함수 앞에 정의되어야 하는 이유가 무엇인가요??

brenda524   3년 전

제가 swap함수를 그냥 느낌상 작성한거라 제대로 이해하지는 못하고 있는거 같습니다.

혹시 구조체변수일때 swap함수 작성에 대해서 설명해주실 수 있으실까요?

seico75   3년 전

c나 cpp 를 컴파일할때 앞에서부터 순차적으로 진행을 할텐데, struct dot 이 정의도 되지 않고 나오기 때문에 컴파일 에러가 날 것 같네요.

또한 지금은 struct 가 main 내에 정의가 되어서 그 안에서만 유효할 것 같습니다.

구조체도 결국은 사용자 정의 타입이기 때문에 일반 변수와 다를 것이 없습니다.

void swap(int *a, int *b) { int t = *a; *a = *b; *b = t; }

와 같이 하듯이 

void swap(struct dot *a, struct dot *b) { struct dot t = *a; *a = *b; *b = t; } 

하면 됩니다.

struct 안의 값이 포인터 변수가 있다면, 포인터값 자체가 복사가 되니 의도치 않게 동작할 가능성이 있지만, 

이경우는 해당되지 않겠네요.

댓글을 작성하려면 로그인해야 합니다.