Les fichiers en C

joujou98 -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
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

1 réponse

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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