Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1469 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [Résolu]Probleme avec des pointeur de structure

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu]Probleme avec des pointeur de structure

n°1899772
screugneug​neu2009
Posté le 28-06-2009 à 00:40:29  profilanswer
 

Bonsoir,  
 
j'essiae de coder un projet pour un cours de programmation mais pas moyen de faire fonctinner les pointeur de struture.
J'ai défini une structure bdf comme ceci:

Code :
  1. typedef struct {
  2. int nbfaits;
  3. condition * fait;
  4. }BDF;


je l'initialise:

Code :
  1. BDF * pbdf;
  2. charger_BDF("BDF.txt", pbdf);


 
avec la fonction:

Code :
  1. void charger_BDF(char * nom_base, BDF * bdf)
  2. {
  3. int nbf, i;
  4. FILE* fic = fopen(nom_base, "r" );
  5. fscanf(fic, "%d", &nbf);
  6. printf("nbfaits=%d\n", nbf);
  7. bdf->nbfaits = nbf;
  8. printf("avant malloc\n" );
  9. bdf->fait = (condition *) malloc(nbf*sizeof(condition));
  10. printf("ampres malloc\n" );
  11. for(i=0; i< nbf; i++)
  12. {
  13.   fscanf(fic,"%s", bdf->fait[i].condition);
  14.   fscanf(fic,"%d", bdf->fait[i].verif);
  15. }
  16. fclose(fic);
  17. }


 
La compilation se passe sans accrochage mais lors de l'execution j'obtiens un erreur de segmentation certainement due a l'utilisation de -> , par exemple dans  
bdf->nbfaits = nbf;
 
Je cherche desesperement la solution a ce probleme.
Merci d'avance pour votre aide, je suis vraiment bloqué.


Message édité par screugneugneu2009 le 28-06-2009 à 11:29:55
mood
Publicité
Posté le 28-06-2009 à 00:40:29  profilanswer
 

n°1899773
tpierron
Posté le 28-06-2009 à 00:47:48  profilanswer
 

Bah, quand tu déclares ton pointeur, tu ne l'initialise pas. Donc forcément si tu tentes d'accèder aux champs par la suite, c'est un SEGFAULT garanti.
 
Deux solutions :

Code :
  1. BDF pbdf;
  2. charger_BDF("BDF.txt", &pbdf);

ou

Code :
  1. BDF * pbdf = calloc(sizeof *pbdf, 1);
  2. charger_BDF("BDF.txt", pbdf);

n°1899789
Joel F
Real men use unique_ptr
Posté le 28-06-2009 à 09:09:00  profilanswer
 

ou mieux, faire un calloc dans charger_BDF

n°1899798
screugneug​neu2009
Posté le 28-06-2009 à 11:19:21  profilanswer
 

Ok, merci pour la reponse c'etait effectivement ça.
Je viens de corriger.


Message édité par screugneugneu2009 le 28-06-2009 à 11:29:33

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [Résolu]Probleme avec des pointeur de structure

 

Sujets relatifs
Probleme oscommerce[resolu]Ajax.updater et IE
[VBA Access] Problème de requête[RESOLU] Problème exécution .jar
[Resolu] [VBA] Macro Excel - Zone de texte[Résolu] Chevauchement de mémoire
[VB6] Problème arrondi calcul validité IBANVBA_Excel_ouverture automatique - Résolu
Problème avec fonction header() + syntaxe. 
Plus de sujets relatifs à : [Résolu]Probleme avec des pointeur de structure


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR