écrire les lignes d'un fichier dans une mémoire alloué dynamiquement

Signaler
Messages postés
204
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
1 novembre 2011
-
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
-
Bonjour,

Je voudrais lire un fichier texte ligne et écrire la ligne lue dans une variable. Comme les lignes du fichiers texte n'ont jamais la même longueur, je me suis dis qu'il fallait passer par l'allocation dynamique.

Le problème je ne sais pas quoi mettre dans mon malloc pour qu'il connaisse la taille de la ligne de mon fichier.

bddPays = fopen("Bdd/eurocolec.pays", "r+");
if (bddPays != NULL)
{
char* memoireAllouee = NULL;
memoireAllouee = malloc(sizeof(?));
}


Vous voyez ce que je veux dire?

Le but étant qu'une fois le code exécuté je me retrouve avec la première ligne de mon fichier dans la variable memoireAllouee.

Si quelqu'un peux me dépanner la dessus sa serait cool.

1 réponse

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
Tu dois obligatoirement utiliser des fonctions permettant de retrouver la taille du fichier et d'allouer la mémoire nécessaire en conséquence. En C standard, fseek() et ftell() seront utilsées. malloc() doit prendre en paramètre la taille retrouvée. un fread() te permattra de transmettre le contenu du fichier vers la mémoire allouée.