// initalise array of nodes
// здесь формируем массив nodes указателей на структуту TNode
// т.е nodes объявлен как TNode** nodes;
unsigned char j=0;
do
{
if (counter[j]==0) continue;
TNode *n = new TNode (j, counter[j]);
nodes = (TNode**) realloc(nodes, (++nodes_number)*4);
memcpy((TNode*) (nodes+(nodes_number-1)), &n, 4);
}
while (++j!=0);
// sort array
qsort(nodes, nodes_number-1, sizeof(TNode*), cmp );
где
int cmp (const void *a, const void *b) {
return ((TNode*)a)->weight - ((TNode*)b)->weight;
}
сортировка не работает.. я раньше qsort никогда не использовал, помогите пожалуйста разобраться что к чему.
у меня в итоге не получается сортировки массива nodes элементов TNode* по полю weight.
|