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 :
- typedef struct {
- int nbfaits;
- condition * fait;
- }BDF;
|
je l'initialise:
Code :
- BDF * pbdf;
- charger_BDF("BDF.txt", pbdf);
|
avec la fonction:
Code :
- void charger_BDF(char * nom_base, BDF * bdf)
- {
- int nbf, i;
- FILE* fic = fopen(nom_base, "r" );
- fscanf(fic, "%d", &nbf);
- printf("nbfaits=%d\n", nbf);
- bdf->nbfaits = nbf;
- printf("avant malloc\n" );
- bdf->fait = (condition *) malloc(nbf*sizeof(condition));
- printf("ampres malloc\n" );
- for(i=0; i< nbf; i++)
- {
- fscanf(fic,"%s", bdf->fait[i].condition);
- fscanf(fic,"%d", bdf->fait[i].verif);
- }
- fclose(fic);
- }
|
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