qsort()
の組み込み関数を使用して、class item
ポインタのベクトルをソートしています。デバッガモードでqsort()をクラスポインタで使用する
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;
}
、有効な場所へのポインタpa
もpb
ポイントでもないし。 class items
のすべてのデータメンバーのセットは、pa
またはpb
のいずれかで指し示されていますが、ガベージ値が含まれています。私はどこでミスをしていますか?私はダブルポインタの使用についても特定していません。
ありがとうございました。
なぜあなたはqsortを使用していますか? –
ベクターにデータを設定していますか?それはそのコードを見るのに役立ちます。それは空のベクトルをソートしているようです。 –
@Fred:はい私はベクトルに値を設定しています。 – ajmartin