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