Variablen in Schleife deklarieren (verkettete Liste)
-
Folgende Funktion habe ich zur Erstellung einer verketteten Liste geschrieben...
LIST* anlegen(){
LIST* element1=(LIST*)malloc(sizeof(LIST));
LIST* element2=(LIST*)malloc(sizeof(LIST));
LIST* element3=(LIST*)malloc(sizeof(LIST));
LIST* element4=(LIST*)malloc(sizeof(LIST));
LIST* element5=(LIST*)malloc(sizeof(LIST));
element1->wert=10;
element1->Next=element2;
element2->wert=20;
element2->Next=element3;
element3->wert=30;
element3->Next=element4;
element4->wert=40;
element4->Next=element5;
element5->wert=50;
element5->Next=NULL;
return element1;
}Jetzt meine Frage: Kann ich die Deklaration von element1 bis element5 mittels einer for-Schleife automatisieren?
-
Ja, wenn du sie in einem Array ablegst.
P.S.: In C nicht die Rückgabe von malloc casten!
-
Danke für die Antwort.
Ich habe noch eine Frage:#include<stdio.h>
struct liste{
int wert;
struct liste* nachfolger;
};Kannst Du mir vielleicht erklären was bei "struct liste* nachfolger;" genau passiert?
-
Da wird einfach ein Zeiger vom Typ struct liste angelegt (der dann auf das nächste Glied der Kette zeigen soll).
-
Es geht auch sowas:
TMyList *root, *run; int i; root = (TMyList*)malloc(size_of(TMyList)); run = root; for(i=0; i<5; i++) { run->pNext = (TMyList*)malloc(size_of(TMyList)); run = run->pNext; }
Dann hast du ne schöne Schleife.
-
"size_of" ist kein ANSI C.