Hi,
ich habe große schwierigkeiten mit Pointern.
Ich habe ein Programm der mir eine Liste mit mit Wörtern erstellt und diese auch anzeigt.
Ich bekomme es aber nicht hin in das letzte leere Element ein neues Wort hinzuzufügen.
So wie ich das bisher mache wird einfach der erste Eintrag ersetzt.
[C] Verkette Listen, Pointer
-
-
-
Ich schau mir das mal an
Du musst bei addElement, an das Ende der Liste gehen und dort das neue Element anfügen.
-
Jo wie Euphi gesagt hast, musst du bis ans Ende gehen und dann dort den neuen Eintrag dranhängen:
Code- void addelement (element *ptr)
- {
- if(ptr->next == NULL)
- {
- ptr->next = (element*) malloc(sizeof(element));
- printf("Wort eingeben: ");
- ptr = ptr->next;
- scanf("%s", ptr-> wort);
- ptr->next = NULL;
- }
- else
- addelement(ptr->next);
- return;
- }
- void anzeigen(element* ptr){
- if(ptr != NULL)
- {
- printf("%s\n", ptr->wort);
- anzeigen(ptr->next);
- }
- return;
- }
-
-
Bei Dickernoobs Lösung musst du allerdings noch darauf achten, dass das char Array wort in dem element struct groß genug für deinen String ist.