Domanda

Sto usando la funzione integrata qsort() Per ordinare un vettore di class item Puntatori.

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;
}

Nella modalità debugger, neppure indica papb indicare una posizione valida. Set di tutti i membri dei dati del class items puntato da entrambi pa o pb contenere valori di immondizia. Dove sto facendo un errore? Inoltre, non sono sicuro sull'uso dei doppi puntatori.

Grazie.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top