Tableau de pointeurs de structures
Bonjour, je n'arrive pas à manipuler un tableau de pointeurs de structures.
Code:
1 2 3 4 5
| typedef struct{
Skipper *skipper;
Bateau *bateau;
int iNum;
} Competiteur; |
Code:
1 2 3 4 5 6 7 8 9 10
| int main(int argc, char * argv[]){
Skipper *leSkipper = NULL;
Bateau *leBateau = NULL;
Competiteur *leCompetiteur = NULL;
int nbComp = -1;
int *pNbComp = &nbComp;
Competiteur *tabComp=NULL;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| void creationCourse(Competiteur **tabCompetiteur, int *pNbComp){
if (*pNbComp==-1)
{
tabCompetiteur = malloc (sizeof(Competiteur));
*pNbComp=0;
printf("\tLa course a été crée\n");
}
else
{
printf("\tLa course a déjà été crée\n");
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| int ajouterCompetiteur(Competiteur **tabComp, Competiteur *competiteur, Skipper *pSkipper, Bateau *pBateau,int *pNbComp){
/* declarations */
//Competiteur *leCompetiteur=NULL;
int iNum = 0;
/* creation */
if(*pNbComp < 0){
printf("\tVeuillez créer une course\n");
}
else
{
ajouterSkipper(&pSkipper);
ajouterBateau(&pBateau);
creerCompetiteur(&competiteur,&pSkipper,&pBateau,iNum);
printf("\t***********************************\n");
printf("\t** Votre competiteur **\n");
printf("\t***********************************\n");
ajoutCompTab(tabComp, &competiteur, pNbComp);
scanf("%*c");
}
return (0);
} |
Code:
1 2 3 4 5 6 7
| void ajoutCompTab(Competiteur **tabCompetiteur, Competiteur **leCompetiteur, int *pNbComp){
tabCompetiteur[*pNbComp] = *leCompetiteur;
afficherCompetiteur(tabCompetiteur[*pNbComp]);
*pNbComp=*pNbComp+1;
printf("%d",*pNbComp);
} |
Code:
1 2 3 4 5 6 7 8 9 10
| void afficheCourse(Competiteur **tabComp,int *pNbComp){
int i=0;
for (i=0; i<(*pNbComp); i++){
printf("\t***********************************\n");
afficherCompetiteur(tabComp[i]);
}
printf("APPUYER SUR ENTREE POUR CONTINUER\n");
scanf("%*c");
} |
J'ai un menu pour accéder aux fonctions .
Je créer la course, puis j'ajoute des compétiteurs.
Ensuite lorsque j'affiche la liste des compétiteurs, seul le premier s affiche puis j'ai un core dump.
J’espère avoir été assez clair, merci d avance.