Hum, voilà je souhaite trier un tableau d'objets avec qsort. Ici les objets sont des scores, et on y accède via un accesseur. Le problème c'est que la fonction de comparaison utilisée par qsort prend en param deux void *. Ma question comment les caster en mon objet score pour que la comparaison ce fasse justment sur les scores? Ci-joint le code (faux) de ma fonction de comparaison :
int
CWHof::compareScores (const void *score1, const void *score2)
{
unsigned s1 = *(CHof *)score1->getScore(), s2 = *(CHof *)score2->getScore();
//Comparaison de s1 et s2.
if (s1 < s2)
return -1;
else if (s1 == s2)
return 0;
else //s1 > s2
return 1;
}
Merci d'avance.
Tazrael
ps : voici la ligne d'appel à qsort :
qsort (m_scores, m_nbEntreesScores, sizeof (m_scores[0]), compareScores);