Traitement de texrte en C - gestion de mémoire

Fermé
freedoomer - 17 janv. 2001 à 12:55
 Marden - 10 févr. 2001 à 20:39
Comment puis -je gérer la mémoire pour un traitemen,t de texte? Liste chainée? Comment ne pas réserver trop de mémoire?
A voir également:

4 réponses

zemni Messages postés 25 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 15 février 2001
18 janv. 2001 à 00:47
utilise malloc et calloc
0
fenelus pierre mozard
18 janv. 2001 à 03:50
jai besoin de savoire l'essentille a ce sujet.Merci!
0
Désolé j'avais pas trop le temps de donner plus d'infos j'écris de mon bahut :(.
Donc voilà le ppb en détail:
j'ai mis en place une liste chainée, chaque structure contient une ligne du texte que l'utilisateur tape, on crée une nouvelle structure a chaque retour chariot. Je compte limiter la taille de la ligne selon la taille de l'écran de l'utilisateur et la taille de la police système, et mettre un retour chariot automatique à chaque bout de ligne. Jusqye là ca va. Mais le pb c'est si l'utilisateur redimensionne sa fenêtre; la taille des lignes va varier, et les lignes ne correspondront plus. En gros les maillons correspondront à plus d'une ligne :(. J'utilise malloc pour réserver la mémoire de mes structures, mais ca serait assez bourrin je pense d'utiliser realloc(et non calloc!) pour redimensionner la taille des tableaux.. Bref je galère.. (PS: je parle en prog win, s'il y a des fonctions spécifiques n'hésitez pas!). Merci d'avance.
0
Une méthode qui ne prend pas beaucoup de place consiste à séparer la liste chaînée de son contenu.
La structure ne doit pas contenir la chaîne, mais seulement un pointeur sur la chaîne, copie de la saisie (une zone banalisée, de taille max) dans une nouvelle zone créée par "[m]alloc". C'est l'adresse de cette nouvelle zone qu'on utilise comme pointeur dans la liste.
Attention ! Pour les mises à jour ou les suppressions, ne pas détruire le pointeur avant d'avoir libéré l'espace correspondant à la chaîne concernée.
0