In meinem derzeitigen Projekt, den "Textadventure Maker 3000" habe ich ein kleines Problem. Ich wollte vorgestern von char xyz[1000] Arrays auf verkettete Listen umsteigen. Ich benutzte noch die ganz coolen oldschool Listen aus Zerbst Band 1. Hier mal das Problem:
|
C-/C++-Quelltext
|
1
2
3
|
ItemOnPC Item; //Hier wird mal so ein Itemeintrag erstellt
/*Hier wird er gefüllt, aber egal ob ichs auskommentier oder nicht, bringt nix*/
CurrentProject.Items.Insert(&Item); //Hier wird er in die verkettete Liste geladen.
|
die Funtkion indem das Item geladen wird macht Probleme. Andere Listeneinträge funktionieren, woran kann das liegen?
Damit klar ist was ein Item ist:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
typedef struct SItemOnPC
{
int Number;
Liste LCommands;
Liste LAnswers;
}ItemOnPC;
|
Und jetzt nochmal der Ausschnitt wo der Debugger hinzeigt, wenn die Insert(&Item) Funktion ausgeführt wird:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
Liste::Liste()
{
plist=(Listenelement*)malloc(sizeof(Listenelement));
plist->pData=NULL;
plist->next=NULL;
}
bool Liste::Insert(void *data)
{
//1. Fall: LEERE LISTE
if(plist->pData==NULL) //HIER ZEIGT ER HIN
{
plist->pData=data; //und wenn ich if(1) hinschreibe zeigts hier hin
return 1;
}
//2. Fall: NICHT LEERE LISTE
Listenelement *Newelement;
Newelement=(Listenelement*)malloc(sizeof(Listenelement));
if(Newelement==NULL)
return 0;
else
{
//Daten speichern Zeiger setzen
Newelement->pData=data;
Newelement->next=plist;
plist=Newelement;
return 1;
}
}
|
Wie gesagt, alle anderen Versuche, andere Klassen oder Strukturen in eine Liste zu laden waren erfolgreich! Hat jemand eine Idee? Danke!