2013-07-14 12 views

Odpowiedz

15

Wynik funkcji compare musi być int. Odejmowanie dwóch long long może z łatwością przepełnić typ int (i robi to w twoim przypadku).

Można porównać te dwie wartości wyraźnie i powrót -1, 0 lub 1.

6

wyraźnie zwrócić -1,1 czy 0. To jest następujący kod:

int cmpfunc (const void * a, const void * b) 
{ 
    if(*(long long int*)a - *(long long int*)b < 0) 
     return -1; 
    if(*(long long int*)a - *(long long int*)b > 0) 
     return 1; 
    return 0; 
} 
Powiązane problemy