Bonjour, je n'arrive pas à manipuler un tableau de pointeurs de structures.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 typedef struct{ Skipper *skipper; Bateau *bateau; int iNum; } Competiteur;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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); }J'ai un menu pour accéder aux fonctions .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"); }
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.
Partager