Здравствуйте, у меня есть следующий код:
struct Edge
{
Node * nodeA, * nodeB;
int weight;
};
.
.
Это typedef'd для простого Edge в другом месте.
.
.
int cmp(const void *b, const void *a)
{
Edge * e1 = (Edge*)a;
Edge * e2 = (Edge*)b;
printf(" %d++", getWeight(e1));
printf(" %d++", getWeight(e2));
if (getWeight(e1) != getWeight(e2))
return (getWeight(e1) < getWeight(e2)) ? -1 : 1;
return 0;
}
void sortEdges(Edge ** edgeList, int numEdges)
{
qsort(edgeList, numEdges, sizeof(Edge*), cmp);
}
Valgrind сообщает мне, что у меня неверное чтение размера4, и когда я вывожу значение для веса ребер, я получаю совершенно неожиданные результаты.Я могу только заключить, что что-то не так с моим приведением к Edge * или что sizeof почему-то не делает то, что я думаю.Если вам нужна какая-либо информация, пожалуйста, дайте мне знать.