Also versuche ich, eine verknüpfte Liste zu implementieren, und ich habe diese Struktur für jeden der Knoten:Wie ändert man Zeigervariablen innerhalb einer Struktur?
typedef struct listNode {
struct listNode *next;
void *data;
} NODE;
Zuvor ich ein Spiel gemacht hatte, wo das Raumschiff struct sah wie folgt aus:
typedef struct {
int height;
int width;
} SPACECRAFT;
und ich konnte ein neues Raumschiff machen von
SPACECRAFT plyrShip = {
.width = //someInt;
.height = //someInt;
};
tun Obwohl mit den Knoten, die Variablen Zeiger sind und es mir ermöglicht es nicht, einen neuen zu erstellen node doing
NODE newNode = {
.*next = null;
.*data = *data //function has *data as parameter so I can pass it
//into the node
}
Was mache ich falsch?
Das '*' ist Teil des _type_, nicht des Feldnamens, also initialisierst du '.next', nicht'. * Next'. Zugegebenermaßen ist die Syntax "struct node * next" in dieser Hinsicht verwirrend und in der Tat bevorzugen viele Leute, struct node * next' zu schreiben, um das klar zu machen. – Ctx
Also in diesem Fall sollte der Wert, den ich festlegte, eine Speicheradresse für den nächsten Knoten in der Liste sein? Oder der Knoten selbst? – DevAllanPer
Ersteres, zum Beispiel mit NULL, wenn der Knoten keinen Nachfolger hat. – Ctx