bonjour
je voudrais savoir comment utiliser ses fonction malloc et free par exemple dans une fonction de lecture merci d'avantage.
Version imprimable
bonjour
je voudrais savoir comment utiliser ses fonction malloc et free par exemple dans une fonction de lecture merci d'avantage.
Ça dépend dans quelles circonstances.
- Si c'est pour lire un fichier, ou des données sur l'entrée, et qu'on précise en premier le nombre de données qu'on va saisir, on peut utiliser malloc() pour allouer un tableau de cette taille et le remplir au fur et à mesure qu'on lit.
- Si c'est pour lire des données sur l'entrée standard sans que leur nombre soit entré en premier, il y a deux solutions: Le tableau agrandit périodiquement avec realloc() ou la liste chaînée (qu'on peut ensuite recopier dans un tableau).
Réservation de mémoire avant le début de la lecture selon n le nombre d'octets à lire, puis boucle de lecture si la mémoire a bien été réservée, puis libération de la mémoire lorsqu'elle n'est plus utile :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 /* réservation d'une quantité de mémoire suffisante */ char *tampon = malloc(n); /* si la mémoire a bien été réservée alors on lit */ if (tampon != NULL) { /* boucle de lecture */ /* utilisation des données lues et stockées en mémoire */ /* libération de la mémoire */ free(tampon); }