struct node {
struct node *next;
int num;
} Node;
Node *insert(int i) {
Node *head;
for (int c = 0; c < i; c++) {
head = malloc(sizeof(Node));
head.num = i;
head = head->next;
}
}
Die Einfügefunktion soll eine verknüpfte Liste erstellen und Zahlen von 0 bis i zu dieser verknüpften Liste hinzufügen. Es soll aber auch einen Zeiger auf den Anfang der Liste/der Liste selbst zurückgeben, und ich kann nicht herausfinden, wie es geht. Ich habe versucht, einen Zeiger zu machen und ihn gleich nach dem Hinzufügen des ersten Knotens einzustellen, aber er gibt nur den ersten Knoten und nicht die gesamte Liste zurück. Kann mir bitte jemand helfen? Vielen Dank.Zurückgeben eines Zeigers an den Anfang einer verknüpften Liste nach dem Hinzufügen von Knoten?
Ihr größeres Problem ist, dass Sie Kopf-> nächsten keinen Wert zuweisen, so dass Sie nicht wirklich eine verknüpfte Liste erstellen, nur eine Reihe von Knoten im Raum herumschweben – happydave
Ich bin mir nicht sicher, ob ich verstehen. Wäre nicht der num-Wert von head-> next 1, da ich den Kopf neu zugewiesen habe? Also wäre es eine verkettete Liste von 0-> 1-> 2-> 3 .....-> c, oder? –
Wenn Sie 'head = head-> next;' zuweisen, weisen Sie einen nicht initialisierten Zeiger auf den Zeiger zu, den Sie gerade zugewiesen haben. Sie haben Speicher ausgeleckt und einen undefinierten Zeiger gespeichert. Du hast GROSSE Probleme. Die Funktion soll auch einen Wert zurückgeben, tut dies aber nicht. –