Je veux essayer de faire une fonction qui va placer n'importe quelle type de données les une à la suite des autres et puis d'allouer un nouveau bloc quand il est nécessaire car jusqu'à mnt j'avais qu'une seule fonction pour chaque type de donnée
void *BLOC[64];
void *BLOC_p;
short Mem_aviable=1024;
short nb_ko=1;
__attribute__((regparm))void *ALLOC_MEM(short mem_to_alloc)
{
mem_to_alloc=mem_to_alloc+2;
if(Mem_aviable<mem_to_alloc)
{
BLOC[nb_ko]=malloc(1024);
BLOC_p = BLOC[nb_ko];
memset(BLOC_p,0,1024);
nb_ko++;
Mem_aviable=1024;
}
Mem_aviable = Mem_aviable - mem_to_alloc;
void *sav = BLOC_p;
BLOC_p++;
return sav;
}
En fait c'est au niveau du BLOC_p++ que ça cloche. Il faudrait indiquer de quel type de donnée il s'agit en mettant par exemple
(xml_tree*)BLOC_p++; pour mes balises XML. Le truc c'est que je ne sais pas comment passer le type de pointeur des données à la fonction.