Les fichiers en C

Fermé
joujou98 - 6 déc. 2018 à 12:23
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 6 déc. 2018 à 13:18
Bonjour,

on nous demande d'écrire une fonction dont le prototype est le suivant :
char ** lignes(FILE* fich) 

qui retourne un tableau de chaines de car ou chaque chaine contient une ligne de fichier .
des idées au moins ?!
merci !

Configuration: Windows / Firefox 63.0
A voir également:

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 6 déc. 2018 à 13:32
Salut joujou98,

Ce prototype
char ** lignes(FILE* fich)
va retourner un tableau de pointeurs sur des pointeurs sur char.

Une stratégie possible est de lire tout le fichier dans un tampon mémoire avec
fread()
, de le parser avec
strtok()
pour délimiter les chaînes et de stocker dans un tableau de pointeurs sur des pointeurs sur char, alloué par la fonction, les adresses de chaque chaîne, ce tableau étant donc retourné par la fonction.

Pour libérer cette mémoire, la fonction appelante devra libérer d'abord le tampon (dont l'adresse sera au premier élément du tableau), puis le tableau de pointeurs sur des pointeurs sur char.

Deux
free()
pourraient ainsi suffire.

Dal
0