Hallo,
ich möchte ein array sortieren, habe jedoch einen Fehler.
Das Programm stürzt ab, sicher sieht den Fehler gleich jemand und kann
mir helfen.
Es sind 3 Einträge zu sortieren.
Michael schrieb:
> qsort(entry, count, sizeof(char *), Compare);
Ein "Element" deines Arrays hat nicht die Größe sizeof(char*)
Mach dir das am besten so klar
Du hast einen 'Spezialstring' der 19 (20 mit \0) Zeichen aufnehmen kann
typedef char[20] nameString;
von diesem Datentyp nameString, willst du ein Array haben, welches 40
solcher 'Strings' bündelt
nameString entry[40];
Der qsort Aufruf muss dann so aussehen
qsort( entry, count, sizeof( nameString ), Compare );
denn ein Element im entry Array hat ja die Größe eines nameString.
sizeof(nameString) ist aber 20 und nicht sizeof(char*)
Und deine Compare Funktion kriegt dann Pointer auf nameString Objekte
zum Vergleich zugeschanzt.
Eine eigene Frage?
Dieser Thread ist über 16 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.