verkettete Liste aus Datei beschreiben
-
Hi Leute,
habe ein Problem beim Beschreiben einer verketteten Liste mit Werten aus einer Datei.
Die Elemente der Liste sehen so aus.
typedef struct skill { bool untrained; string name; string keyability; int ranks; int miscmodifier; struct skill *next; } SKILL;Ich lese zuerst die Werte für ein Element aus der Datei in Variablen.
Dann starte ich eine Methode zum erstellen eines Elementes mit diesen Variablen.SKILL *create_skill_list_element(bool bo, string str1, string str2, int wert1, int wert2) { SKILL *neu; neu = (SKILL*)malloc(sizeof(SKILL)); if(neu == NULL) { printf("create_skill_list_element: malloc failed\n"); exit(1); } else { neu->name = str1; neu->keyability = str2; neu->ranks = wert1; neu->miscmodifier = wert2; neu->untrained = bo; neu->next = NULL; } return neu; }Und genau bei dieser Methode hängt sich das Programm auf.
Es muss irgentwie an der Zuweisung
"neu->name = str1;"
liegen. str1 ist mit einem Text gefüllt. Habe ihn nämlich mal vor der Zeile ausgegeben.Hoffe jemand kann mir helfen.
-
Hallo
Wenn du in C++ programmieren willst dann benutzt auch die Möglichkeiten die dir C++ bietet
struct SKILL { // Konstruktor, sollte benutzt werden um den bool und die ints zu initialisieren SKILL() : untrained(false), ranks(0), miscmodifier(0) { } bool untrained; string name; string keyability; int ranks; int miscmodifier; }; ... #include <list> .. std::list<SKILL> skills; // Deine Liste, bereits mit allem nötigen was du brauchstSiehe auch den Artikel "STL-Container" im Forum-Magazin.
bis bald
akari
-
Danke für die Antwort.
Habe mir auch den Artikel durchgelesen.
Doch habe ich leider nicht verstanden, wie ich jetzt bezogen auf mein struct die Elemente mit Werten fülle und erstelle.
-
Hallo
Zum Beispiel so
SKILL newskill newskill.name = "Test"; // Neues Element mit Daten füllen skills.insert(skills.end(), newskill); // Element als letztes Element in Liste einfügenbis bald
akari