1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
typedef struct PHuff{
struct PHuff* lg;
struct PHuff* ld;
char ascii;
int freq;
} Huff ;
main()
{
Huff *STRUCT=NULL, *tmp=NULL ;
int i =0;
...
do
{
/* Alloue la place dans le tableau , avec cas particulier pour le premier élément */
if ( i == 0 )
{
STRUCT= malloc(sizeof(Huff));
if ( STRUCT == NULL )
{
fprintf ( stderr, "\n Erreur mémoire\n");
break ;
}
}
else
{
tmp = realloc ( STRUCT, ((i+1)*sizeof(Huff)) );
if ( tmp == NULL )
{
fprintf ( stderr, "\n Erreur mémoire\n");
break ;
}
STRUCT = tmp ;
}
/* Stocke et imprime la structure */
STRUCT[i].ascii=(char)ASCII[0][i];
STRUCT[i].freq=(int)ASCII[1][i];
STRUCT[i].lg=NULL;
STRUCT[i].ld=NULL;
printf("%c\t %d \n",STRUCT[i].ascii,STRUCT[i].freq);
i++;
}while(ASCII[1][i]!=0); |