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 brauchst
    

    Siehe 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ügen
    

    bis bald
    akari


Anmelden zum Antworten