이 상황을 알고 싶습니다.C (동적 할당)의 qsort
나는이 문장을 정의 할 때
struct soccer team[100] ;
내가 qsort가 작업을 수행 할 수 있습니다
; 내가 동적 할당을 수행 할 때
qsort(team, MAX , sizeof(team[0]) , compare) ;
int compare(const void *a, const void *b)
{
SOC *A1 = (SOC*)a ;
SOC *B1 = (SOC*)b ;
if(A1->score > B1->score)
return -1 ;
else if (A1->score == B1->score)
return 0 ;
else
return 1 ;
}
은
struct soccer*team[MAX] ;
team[Index] = (SOC*)malloc(sizeof(SOC)) ;
오류가 존재한다.
내가 (동적 할당 구조체에 대한 qsort가)를 사용합니까 방법을 알고 싶어요 (qsort가와 비교는 동일)
하십시오!
예 (I는 첫 번째 방법을 사용할 때)
Man 3 1 1 16
Che 2 2 2 8
Asn 0 6 0 6
hot 6 0 0 18
City 0 0 6 0
Bar 1 5 0 8
가 변환
hot 6 0 0 18
Man 3 1 1 16
Che 2 2 2 8
Bar 1 5 0 8
Asn 0 6 0 6
City 0 0 6 0
"qosrt 함수와 비교 동일"하다 동일한 기능을 비교 한 다른 요소 유형에 이용되지 않아야하기 때문에 나쁘다. – MikeCAT
['malloc()'의 반환 값과'C'의 패밀리를 형 변환하지 않는 이유에 대한이 토론을보십시오.] (http://stackoverflow.com/q/605845/2173917). –
내 실수! 원본 코드 : typedef struct soccer SOC; –