verkettete Liste mit unterschiedlichen Datentypen
-
Hallo!
Ich versuche eine verkettete Liste in C zu schreiben, die ich mit unterschiedlichen Datentypen füllen will. Die unterschiedlichen Datentypen kommen daher, das ich 5 unterschiedliche structs habe, die ich in dieses Liste speichern möchte. Nachdem ich recht wenig bis gar keine Erfahrung mit Listen in C habe, wäre ich über jede Hilfe dankbar! Seien es irgendwelche Tutorilas oder Codebeispiele!
Mfg DAniel
-
falls du doch was fertiges benutzen möchtest: http://sglib.sourceforge.net/
-
Nur so ne Idee:
Du könntest in dein Listenelement alle benötigten Datentypen als member aufnehmen, dann aber nur ein member initialisieren.
Weil das Speicherplatzverschwendung ist, könntest du das mit C-unions optimieren...
-
wenn die listen elemente folgendermaßen aussehen:
struct list_element { void *data; struct list_element *next; };
kannst du jeden variablen typ in data speichern wenn du ihn mit malloc/calloc allozierst und mit free wieder frei gibst
wüßte jetzt nicht wo da genau dein problem liegt
sowas is super schnell selbst geschrieben
-
man könnte der Node noch ein enum oder char mitgeben, der spezifiziert, was für ein Objekt dranhängt
-
Nachdem ich recht wenig bis gar keine Erfahrung mit Listen in C habe
Nicht gleich so heftig ...
Verkettete Listen mit unterschiedlichen Datentypen sind für einen, der mit
Fehlersuche und Debugging nicht 100%ig fit ist, ein Horror. Das wird nix.Er sollte alles als Strings speichern, dann geht's wenigstens ohne Absturz.
Umwandeln kann man ja alles.Mit unions ist das nicht richtig effektiv. Muß man so etwas verwenden, stimmt
der Algorythmus nicht.
-
in strings speichern ...
was soll das werden?
-
Vielleicht etwas was er handhaben kann ?