struct Edge
{
int src, dest, weight;
}; typedef struct Edge Edge;
struct Graph
{
int V, E;
Edge* edge;
}; typedef struct Graph Graph;
私はこのようなグラフ構造体を持っています。私はqsortを使用して、すべてのエッジを重みの高い順にソートしようとしています。メインで :qsort()グラフ構造の配列
Graph* graph = (Graph*)malloc(sizeof(Graph));
qsort(graph->edge, graph->E, sizeof(graph->edge[0]), myComp);
MYCOMP機能:
int myComp(const void* a, const void* b)
{
Edge* a1 = (Edge*)a;
Edge* b1 = (Edge*)b;
return a1->weight > b1->weight;
}
は、すべての後、私はqソート前と後のすべてのエッジを印刷しようとしたが、順序が変更されているが、それは正しい順序ではありません。誰でもこれらを助けることができますか?私のコードのどの部分が間違っていますか?
[** ** 'malloc'の戻り値をキャストしないでください!](https://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc/605858# 605858) –
@TheParamagneticCroissant:... C.で、この質問がについてです – alk
@alk ... :-)。コードとして –