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:
Code:
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:
Code:
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

Code:
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.


Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com