Problème allocation en Langage C
Résolu/Fermé
A voir également:
- Problème allocation en Langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Allocation de rentrée scolaire en france - Guide
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 13/11/2011 à 14:05
Modifié par fiddy le 13/11/2011 à 14:05
Bonjour,
Pas mal de points à revoir :
if((f=fopen("fichier.txt","r")==NULL) printf("erreur");
Il faut mettre des parenthèses autour de f=fopen(...) vu que l'opérateur == est plus prioritaire que l'opérateur =.
Sinon f contiendra un int au lieu d'un FILE*. D'ailleurs, le compilateur devrait couiner.
De plus, tu as oublié le fclose(f);
Ensuite, tu as un simple pointeur sur un var. Tu fais l'allocation comme si tu avais un tableau (donc dimension double).
Et enfin, lorsque tu alloues dans une autre fonction, il faut envoyer un pointeur sur le tout pour ne pas perdre le résultat de l'allocation.
Au final, il te faut, struct_pt ***var=NULL;
Le prototype de ta fonction deviendra : void read_file(struct_pt *** var)
Et tu remplaceras dans la fonction read_file, les occurrences de var par (*var)
Et n'oublie pas les free.
Cdlt,
Google is your friend
Pas mal de points à revoir :
if((f=fopen("fichier.txt","r")==NULL) printf("erreur");
Il faut mettre des parenthèses autour de f=fopen(...) vu que l'opérateur == est plus prioritaire que l'opérateur =.
Sinon f contiendra un int au lieu d'un FILE*. D'ailleurs, le compilateur devrait couiner.
De plus, tu as oublié le fclose(f);
Ensuite, tu as un simple pointeur sur un var. Tu fais l'allocation comme si tu avais un tableau (donc dimension double).
Et enfin, lorsque tu alloues dans une autre fonction, il faut envoyer un pointeur sur le tout pour ne pas perdre le résultat de l'allocation.
Au final, il te faut, struct_pt ***var=NULL;
Le prototype de ta fonction deviendra : void read_file(struct_pt *** var)
Et tu remplaceras dans la fonction read_file, les occurrences de var par (*var)
Et n'oublie pas les free.
Cdlt,
Google is your friend