Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich schreibe gerade ein Programm das Aus einer Datei eine Tabelle einliest. Danach soll die Tabelle in Richtiger reihenfolge sortiert werden. Das funktioniert auch alles bestens.

Ich habe da eine Funktion die 2 Strings mit einander Vergleicht und genau da liegt mein Problem.

int Vergleich(const void *s1, const void *s2)

{

    return (strcmp(*(char **)s1, *(char **)s2));

}

Mir wurde gesagt das das nur so funktioniert. Allerdings verstehe ich nicht wieso ich so viele Zeiger brauche.

Vllt kann es mir ja jemand erklären. Wäre lieb.

Liebe Grüße

Geschrieben
Mir wurde gesagt das das nur so funktioniert. Allerdings verstehe ich nicht wieso ich so viele Zeiger brauche.
Ist das eine Vergleichsfunktion für qsort?

Wenn du ein Array mit qsort sortierst, wird die Vergleichsfunktion mit den Adressen jeweils zweier Arrayelemente aufgerufen. Wenn du also ein Array von char* hast, bekommt die Vergleichsfunkion char**. Da es in C keine andere Möglichkeit gibt, werden diese Adressen in dem "generischen" Typ void* übergeben.

Hinter diesen void* stecken also eigentlich Zeiger auf Strings (char**).

Die kannst du aber nicht mit strcmp vergleichen, deswegen musst du sie vorher einmal derefenzieren, und das macht der Stern ganz vorn.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...