hell-student
Lieutenant
- Registriert
- Nov. 2007
- Beiträge
- 671
Hallo Zusammen,
Ich möchte gerne Daten in einer Linked List speichern und habe gerade eine Blockade. Da ich verschiedenste Daten speichern möchte, dachte ich an eine generische Liste mittels void*.
Angenommen ich habe noch eine Datenstruktur zum Speichern meiner Daten:
Wie muss ich nun vorgehn um ein Auto einzufügen?
Muss ich vorher:
machen, oder:
Meine Frage ist nur die, wie ich alles wieder richtig freeen (free()) tue. Wenn ich ein Pointer auf ein Car in meine Liste einfüge und auf diesen Pointer free() mache, free() ich ja das Car und nicht das Element?
Ich bin gerade verwirrt
Eigentlich will ich ja nur eine Linked Liste, die generisch ist.
Ich möchte gerne Daten in einer Linked List speichern und habe gerade eine Blockade. Da ich verschiedenste Daten speichern möchte, dachte ich an eine generische Liste mittels void*.
Code:
typedef struct list_node {
void *data;
struct list_node *next;
}list_node;
Angenommen ich habe noch eine Datenstruktur zum Speichern meiner Daten:
Code:
typedef struct car {
int color;
int bla;
}car;
Code:
typedef struct building {
int color;
int blub;
}building
Wie muss ich nun vorgehn um ein Auto einzufügen?
Muss ich vorher:
Code:
car car1 = (car)malloc(1 * sizeof(car);
Code:
car car1;
Meine Frage ist nur die, wie ich alles wieder richtig freeen (free()) tue. Wenn ich ein Pointer auf ein Car in meine Liste einfüge und auf diesen Pointer free() mache, free() ich ja das Car und nicht das Element?
Ich bin gerade verwirrt
Eigentlich will ich ja nur eine Linked Liste, die generisch ist.