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

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;
}
message d'erreur de la console ci-dessous :

Nom : Allocation dynamique, malloc, free....png
Affichages : 2584
Taille : 12,2 Ko

Merci pour vos lumières, les corrections et le cour que vous me donnerez :-)

Nicolas.