AckiB
Mitglied
Hi,
ich versuche ein flexibles Array zu erstellen, habe aber Probleme damit...
Ich habe eine Struktur roomDat.
Beim 1. und 2. Aufruf von addRoom() ist alles OK, allerdings wird die 2. Instanz nicht angelegt, da bei jedem weiteren Mal immer ID = 2 zurückgegeben wird...
Was ist falsch ?
ich versuche ein flexibles Array zu erstellen, habe aber Probleme damit...
Ich habe eine Struktur roomDat.
Beim 1. und 2. Aufruf von addRoom() ist alles OK, allerdings wird die 2. Instanz nicht angelegt, da bei jedem weiteren Mal immer ID = 2 zurückgegeben wird...
Code:
extern roomDat* Raum;
int cSpiel::addRoom(){
/* TODO (AB#1#): neuen Raum erstellen, ID zurückgeben */
int ID = 0;
if(!Raum){
Raum = (roomDat*)malloc(sizeof(roomDat));
Raum->Prev = NULL;
Raum->Next = NULL;
Raum->ID = ++ID;
sprintf(Raum->Name, lang[7], ID);
Raum->Mesh = NULL;
Raum->Node = NULL;
wnd_Anfang.addRoom(Raum->Name, Raum->ID);
}else{
roomDat* tmp = Raum;
roomDat* tmp2 = NULL;
while(tmp){
if(tmp->ID > ID) ID = tmp->ID;
tmp2 = tmp;
tmp = tmp->Next;
}
tmp = (roomDat*)malloc(sizeof(roomDat));
tmp->Prev = tmp2;
tmp->Next = NULL;
tmp->ID = ++ID;
sprintf(tmp->Name, lang[7], ID);
tmp->Mesh = NULL;
tmp->Node = NULL;
wnd_Anfang.addRoom(tmp->Name, tmp->ID);
}
return ID;
}
Was ist falsch ?