Bonjour,
Le code ci-dessous fonctionne mais il affiche un message d'erreur en fin d’exécution dans la console lorsque le nombre de personnes dépasse 2
message d'erreur de la console ci-dessous :
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
41
42
43
44
45
46
47
48
49
50
51 #include <stdio.h> // ok linux #include <stdlib.h> // #include <time.h> // #include <string.h> int main() { int nbre_personnes, i = 0; char *prenom_personnes[50]; int *ptr_age_personnes = NULL; printf("\n Combien de personnes sont ici présentes ? "); scanf("%d", &nbre_personnes); if (nbre_personnes > 0) { *prenom_personnes = malloc(nbre_personnes * sizeof (int)); // il doit y avoir une erreur ici, le pointeur et int... ptr_age_personnes = malloc(nbre_personnes * sizeof (int)); if (nbre_personnes == 0) { exit(0); } for (i = 0; i < nbre_personnes ; i++) { printf("\n Quel est le prénom de la personne %d ? ", i + 1); scanf("%s", prenom_personnes[i]); } for (i = 0; i < nbre_personnes ; i++) { printf("\n Quel âge a %s ? ", prenom_personnes[i]); scanf("%d", &ptr_age_personnes[i]); } for (i = 0; i < nbre_personnes ; i++) { printf("\n %s a %d an%c ", prenom_personnes[i], ptr_age_personnes[i], ptr_age_personnes[i] > 1 ? 's' : ' '); } free(ptr_age_personnes); // Un seul malloc est libéré, un messages d'erreur s'affiche dans l'ide si j'essaye de libérer le second. printf("\n"); } return 0; }
Merci pour vos lumières, les corrections et le cour que vous me donnerez :-)
Nicolas.
Partager