214Fermer216
nullLe 03/02/2004 à 21:11
Ok. Par contre j'ai des gros problème de crash : j'ai dû me planter quelque part en remplaçant les structures.
Voici les structures que j'utlises :

typedef struct
{

unsigned char stick_char:2;
unsigned char color:2;
unsigned char align:2;
unsigned char under_line:1;
unsigned char on_line:3;
unsigned char font:2;
unsigned char animate:2;
unsigned char left:2;
unsigned char right:2;
unsigned char inter_line:2;
unsigned char br:2;
unsigned char frame:1;
unsigned char blink:1;
unsigned char hide:1;
short x:12;// 4096


}Str_Mode;
typedef struct
{

char *str;
Str_Mode *param;


}TEXT;


typedef struct
{
union
{
BITMAP *Bitmap;
TEXT *Text;
}File;
unsigned char flag;
}DOCUMENT;

Je déclare la structure qui va stocker le fichier lors du parsing comme ceci :
DOCUMENT *Document=malloc(2048*sizeof(DOCUMENT));

Ce qui doit faire un tableau de 2048 lignes si je ne me trompe pas...

Et ensuite j'alloue la mémoire pour le texte et les paramètre comme avant c'est à dire comme ça :
Document[nb_str].File.Text->str = malloc(Mem_to_alloc);
sauf qu'avant j'utilisais la structure TEXT au lieu de la structure document ce qui faisait :
TEXT *Text = malloc(2048*sizeof(TEXT));
et
TEXT[nb_str]->str = malloc(Mem_to_alloc);

... Avec ces unions je n'y comprend pas grand chose et apparement il n'y a pas ou pas assez de mémoire allouée pour stocker le texte et les paramètres alors que j'ai simplment changé de structure.