0
char 포인터의 배열을 정렬하고 출력하는 함수를 작성하려고했습니다. 어떤 이유로 qsort 함수를 사용하면 출력에서 정렬 할 수없는 것처럼 보입니다.qsort() C에서 char 포인터의 배열에 대해
84 : 입력은 기본적 포맷 MAC 주소의 배열이다 1B : 5E : A8 : BF : 7C
74 : E2 : F5 : 17 : 96 : 89
00 : 8E : F2 : C0 : 13 : CC
74 : E2 : F5 : 17 : 96 : 89
I 주위 보면서 섹션 qosrt 함수의 다른 예를 비교 문자열에 대한 다양한 기능을했지만, I 한 여전히 작동시키지 못합니다. 내 코드는 다음과 같습니다.
int compare_function(const void *a,const void *b) {
return (strcmp((char *)a,(char *)b));
}
void countDistinct(char* MAClist[], int n){
char* bufList[n];
for(int i = 0; i < n; i++){
printf("success1 ");
bufList[i] = str_dup(MAClist[i]);
printf("success2 ");
printf("%s \n", bufList[i]);
printf("success \n");
}
qsort(bufList, n, sizeof(*bufList), compare_function);
for(int j = 0; j < n; j++){
printf("%s \n", bufList[j]);
}
}
내가 정렬하려고하는 이유는 고유 개체의 수를 효율적으로 계산할 수 있기 때문입니다. 그러나 정렬은 나중 단계에서 다시 수행되어야하므로 함수를 다시 사용해야합니다. 어떤 도움을 주셔서 감사합니다!
하는'복귀 시도 (STRCMP ((의 char *)는, (숯불 *)를 B));'->'수익률 (을 strcmp를 (* (char **) a, * (char **) b)); – BLUEPIXY