Verstehe Code in Aufgabenstellung nicht



  • Servus ich muss eine Übung machen, es geht um eine verkettete Liste. Man soll eine Wörterliste erstellen können bis man ENDE eingibt, ein Element hinzufügen und ein Element löschen können.
    Wir haben auch schon in der Aufgabe ein Codesegment vorgegeben bekommen und zwar die funktion erstellen.

    Hinweis:
    struct eintrag { // Deklaration eines Listenelements
        char wort[20];
        struct eintrag *next;
    };
    typedef struct eintrag element;
    struct eintrag *liste; //Zeiger auf den Anfang der Liste 
    
    Die Funktion erstellen
    wird zunächst mit dem Zeiger auf den Listenanfang aufgerufen, dann rekursiv jeweils mit dem Zeiger auf das nächste Element.
    
    void erstellen (element*ptr){
        printf ("Wort eingeben ('ENDE' fuer Ende der Liste):");
        scanf("%s", ptr->wort);
        if (strcmp(ptr->wort,"ENDE")==0) ptr->next=NULL;
        else {
        ptr->next=(element*)malloc(sizeof(element));
        erstellen (ptr->next);
        }
    return;
    }
    

    Also mein Problem ist ich kenn mich nicht gut mit Zeigern aus. Ich kann den Code nicht ganz nachvollziehen. Wäre nett wenn ihr ihn mir bisschen erklären könntet. Zum einen oben den struct eintrag das Peil ich nicht so ganz was da für was steht. Und was noch wichtig ist ist unten in der erstellen Funktion was bedeutet das ptr oder das -> bei dem ptr ?



  • Und wie lautet deine Frage?



  • icarus2 schrieb:

    Und wie lautet deine Frage?

    tut mir Leid der Beitrag wurde abgeschickt bevor ich fertig war habs nochmal editiert, aber das freut mich, das einem so schnell geantwortet wird 😉



  • ptr ist ein Zeiger auf eine struct.
    -> ist der Zugriffsoperator von einem Structzeiger auf einen Member dieser struct.
    ptr->next ist eine andere Schreibweise für (*ptr).next


Anmelden zum Antworten