CAST 사용 질문좀 드릴게요 고수님들
마음새
질문 제목 : 스왑함수를 쓸 때 자료형에 상관없이 쓸 수 있도록 하는 스왑함수를 구현할 때 궁금한점.질문 내용 :
#include stdio.h
void swap(int sel, void* _x, void* _y){
/************ implement here ***************/
if(sel2){
int tmp;
void* p;
p = (void*)&tmp;
*p = *_x;
*_x = *_y;
*_y = *p;
}
/************ implement here ***************/
}
void main(void){
int num1=5;
int num2=10;
swap(1, (void*)&num1, (void*)&num2);
double num3=4.3;
double num4=0.3;
swap(2, (void*)&num3, (void*)&num4);
printf( num1 : %3d , num2 : %3d\n, num1, num2);
printf( num3 : %3.1f , num4 : %3.1f\n, num3, num4);
}
위 코드에서 초록색 글자 부분을 바꿔서 스왑함수를 완성해야 하는데, 함수 선언부분에서 (void*) 형변환을 해서 받습니다.
이걸로 10시간 동안 고민했어요 고수님들 굽신굽신
-
핫파랑
맞아요 ㅎㅎㅎ 계속착각ㅎ하고 보이드캐스트햇었네요 ㅜ ㅜ
-
난길
*(int *)p= *(int *)_x; 이런식으로 캐스트 해줘야하지않나요?ㅎㅎ