Hallo ihr Struct - Heroes,
Habe ein Problem in meinem 2D Bomberman. Das Game stürzt immer wieder ab, weil ein normaler Pointer eines Levelstückes ungültig wird (glaube ich nach einigen Testzumindest).
Jedes Tilestück (Panel) im Level hat einen Pointer und irgendwann zufällig wenn ich pan_setbmap oder alpha ändern will ist einer dieser Pointer ungültig.

Was ich mir vorstellen kann, ist dass ich mit sys_malloc etwas falsch mache. Habe 2 Array-Structs in meinem Spiel, einen für Bomben (10 Stück pro Player) und einen für 8 Spieler, in dem auch der Bombenstruct enthalten ist. Hier eine verkürzte version der Structs, mein Spiel enthaltet mehr vars und BOOL`s.
Code:
#define Anz_spieler    8
#define Anz_bomben     10 // (pro Player)

typedef struct
{
	var    koor_x_abs;
	var    koor_y_abs;
	...
	var    countdown;
	PANEL* panel;
} BOMBE;

/////////////////////////////////////////////////////////////////////////////////////////////////////

typedef struct
{
	var    koor_x_abs;
	var    koor_y_abs;
	...
	BOOL   t1_gedr;
	BOOL   t2_gedr;
	
	PANEL* panel;
	
	BOMBE  Bombe[Anz_bomben]; //  <-- ist das so richtig? 
} PLAYER;

PLAYER  Player[Anz_spieler];

//*************************************************************************************************//

void INIT_STRUCT()
{
	PLAYER *Player = sys_malloc ((sizeof(PLAYER) + (sizeof(BOMBE)  * Anz_bomben)) * Anz_spieler);}


Ist die function INIT_STRUCT so richtig?
Bin ich auch richtig mit der Annahme dass sys_malloc Speicherbereich zur verfügung stellt für die var`s, BOOL`s und Panelpointer? Der Panel wird im Spiel mit pan_create erzeugt, für das Panel selber muss ich ja keinen Speicherbereich bereitstellen?

Möchte nur wissen, ob das hier so richtig ist, damit ich das als Ursache für mein Problem ausschliessen kann. Danke.

Last edited by Widi; 03/12/11 01:09.