J'utilise la fonction intégrée qsort()
pour trier un vecteur de class item
des pointeurs.
class item {
int value;
vector<char> c;
...
...
};
//Declaration of vector
vector<item*> items;
//Function Call
qsort(&items, items.size(), sizeof(item*), value_sort);
int value_sort(const void* a, const void* b)
{
item* pa = *(item**) a;
item* pb = *(item**) b;
if (pb->value < pa->value)
return 1;
else if (pa->value < pb->value)
return -1;
return 0;
}
Dans le mode débogueur, les pointeurs ni pa
ni pb
pointe vers un emplacement valide. Ensemble de toutes les données membres du class items
pointé par l'un ou l'autre pa
ou pb
contiennent des valeurs erronées. Où est-ce que je fais une erreur ? Je ne suis pas non plus certain de l'utilisation des pointeurs doubles.
Merci.