Compare-Funktion für qsort
-
Hallo zusammen,
ich habe ein Problem beim Entwurf einer Compare-Funktion für qsort. Ich würde mich sehr freuen, wenn mir jemand weiter helfen könnte.
Es geht darum, dass ich ein Array mit Pointern auf ein struct aufbauen möchte und es dann nach coord[0] sortieren möchte.
Das struct:
typedef struct point_s { long phiindex; long coord[3]; REAL r; } point_t __attribute__ ((aligned));Mein Array:
point_t *voronoiXAxis[dots];Der Aufruf von qsort:
qsort(voronoiXAxis, dots, sizeof(point_t), compareXAxis);Mein Problem liegt in der Compare-Funktion. Wie greife ich hier auf mein Coord[0] zu?
static int compareXAxis (const void * a, const void * b) { ??? }Ich wäre super wenn mir jemand weiter helfen könnte!
Gruß Micha
-
Könnte diesen Thread jemand in den Bereich C++ verschieben?
-
Hallo,
beim Aufruf ist noch ein Fehler, die Elemente haben nicht die Größe sizeof(point_t), sondern sizeof(point_t)*. Mit:
(*reinterpret_cast<point_t**>(a))->coord[0];greift man zu.
MfG,
Probe-Nutzer
-
Korrektur (const nicht beachtet):
(*static_cast<point_t**>(const_cast<void*>(a)))->coord[0]MfG,
Probe-Nutzer
-
Funktioniert perfekt!
Vielen vielen Dank!!
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.