Hab, wieder, ein Problem mit realloc und hoffe ihr könnt mir helfen.
Kann es sein das man mit realloc/malloc Elemente in einem Struct nicht vergrößern kann? Ich nutze folgenden Code um beim Start einen Integer auf eine bestimmte (voher unbekannte) Größe zu bringen:
town_ingame[id].town_goods.ware = (int *)malloc((Waren_all+1)*sizeof(int));
for(h=1;h<=Waren_all;h++)
{
town_ingame[id].town_goods.ware[h] = 0;
}
Die Structs sehen so aus:
typedef struct
{
STRING* name;
VECTOR pos;
ENTITY* town_ent;
int town_handle;
int own;
int town_size;
int population;
int tax;
int good_for[3];
ENTITY* flag_ent;
PARTICLE* particle;
GOODS town_goods;
} TOWN;
TOWN *town_ingame;und
typedef struct {
int geld;
int *ware[1];
} GOODS;allerdings stürzt dann beim Spielstart das Spiel mit folgender Fehlermeldung ab: "Crash in seed_with_veg" (wobei diese Funktion eigentlich gar nichts damit zu tun hat. Allerdings funktioniert alles ohne Probleme wenn ich das ganze so schreibe:
town_ingame[id].town_goods.ware = 0;
das ist jetzt aber natürlich nicht das was ich brauche. Ich kann auch mit Sicherheit sagen das Waren_all zu dem Zeitpunkt bereits einen Wert hat.
Ich hoffe ihr versteht mein Problem und könnt mir helfen.