작성
·
302
0
앞강의에서 포인터(주소)의 자료형을 변환하는것은 매우 위험하니 결코 권장하지 않는다 하셨습니다.그런데 왜 여기서는 굳이 void*로 받고 float*(int*) 로 형변환해서 쓰나요? 그냥 처음 받을때부터 float*(int*) 로 받으면 안돼는건가요?
답변 1
3
library에 구현된 qsort의 parameter가
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))
이러합니다. int 형 자료를 반환하고, void 포인터 두 개를 parameter로 받아오는 함수 포인터입니다.
이렇게 구현하면 비교하는 함수만 바꾸면 되고, qsort를 여러개 만들어둘 필요가 없다는 이점이 있습니다.
https://www.tutorialspoint.com/c_standard_library/c_function_qsort.htm
참고자료입니다.