A voir également:
- Traitement de texrte en C - gestion de mémoire
- Mémoire vive - Guide
- RAM : type, format, CAS, vitesse, tout sur la mémoire vive - Guide
- Traitement de texte gratuit - Guide
- Logiciel gestion photo gratuit - Guide
- Traitement de texte gratuit open office - Télécharger - Suite bureautique
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
18 janv. 2001 à 00:47
utilise malloc et calloc
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.
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.
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.
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.