Bon voilà je me suis remis à FTL VIEWER et je voudrais réduire considérablement la mémoire allouée par mon programme.
Je vais d'abord situer le problème :
Je rapelle que FTL VIEWER est un viewer de texte qui interprète un langage à partir d'un fichier TEXT.
Voici le structure du tableau qui va servir à stoquer les données à afficher. Chaque ligne de ce tableau correspond soit à une image , soit une ligne de texte.
typedef struct
{
unsigned char flag;
union
{
BMP Bmp;
TEXT Text;
}File;
}DOCUMENT;
Mais le nombre de ligne de ce tableau n'est pas connu à l'avance. Tout se met en place lors du parsing effectué qu'une seul fois lors de l'ouverture du document.
Donc pour ne pas prendre de risque j'alloue un nombre maximum de ligne au départ :
DOCUMENT *Document=Malloc(2048*sizeof(DOCUMENT));
Et ensuite lors du parsing j'alloue la mémoire pour le texte et les images en fonctions des besoin.
Grossomodo pour chaque document mon programme bouffe 31 ko de RAM tandis qu'un document de 100 ligne prendrait 11 ko tout au plus.
Donc je me demandais s'il était possible d'allouer le tableau au fur et à mesure, comme le contenu. Je n'ai pas essayé avec Realloc mais je pense que ça serait un peu lourd.



!!! Tu programmes depuis combien de temps sur TI? 2 ans? On voit bien les dégats que fait genlib...
).
Ok, donc ça fait déjà ça de moins.
Un peu plus parce-que avant le C je programmais sur Ti 83+ en BASIC.
) sauf pour mon moteur 3D que j'avais passé sous Genlib pour les bsp mais j'ai abandonné et puis sinon je programme par période, pendant les vacances, à raisons de quelques heures maximum par jours, les seuls jours où je programme : des fois c'est 2 minutes.