Bonjour a tous.
Je suis depuis plusieurs heures sur un probleme qui est pourtant tout simple. Je ne vois vraiment pas ou pourait etre le probleme. Bientot je m'arrache les cheveux. Donc si vous pouviez m'eviter la calvitie , j'apprecierai grandement.
je vous presente mon main.
Les fonction utilisé CreateAnnuR, NewUser et ConsultingAnnur sont tres simple.
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
26
27
28
29
30
31
32
33 int main(int argc, char *argv[]) { char option; char *Nom = (char*)malloc(sizeof(char*)); int Num; AnnuR a[MAX]; CreateAnnuR("Test",a); while(option !='q') { printf("Commande : "); scanf("%c",&option); fflush(stdin); if(option == 'i') { printf("Nom \t: \t", Nom); scanf("%s",Nom); fflush(stdin); printf("\nNumero \t: \t", Num); scanf("%d",&Num); fflush(stdin); NewUser(a,Nom,Num); } else if(option == 'c') { ConsultingAnnuR(a); } } return 0; }
Le probleme de ce programme c'est quand je crée 2 NewUser (ou plus). Le nom des precedent User dans le tableau est remplacé par celui du dernier User crée.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 typedef struct AnnuR { char *nomAnnu; char *nom; int num; int indexF; }AnnuR; void CreateAnnuR(char *NomAnnu, AnnuR *Annu) { int i; Annu->indexF = 0; printf("Creation de l'annuaire ... %s\n", NomAnnu); for(i=0;i<MAX;i++) { Annu[i].nom = ""; } } void ConsultingAnnuR(AnnuR *a) { int i =0; while(i<a->indexF) { printf("Nom \t:\t %s\n", a[i].nom); printf("Numero \t:\t %d\n", a[i].num); printf("======================================\n"); i++; } } void NewUser(AnnuR *Annu, char *unNom, int unNum) { Annu[Annu->indexF].nom = unNom; Annu[Annu->indexF].num = unNum; Annu->indexF ++ ; }
Si vous pouviez m'aider.
Merci
Partager