Aide programme structure

Fermé
Eyzzle - 10 oct. 2021 à 22:57
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 - 11 oct. 2021 à 09:34
Bonjour,

J'essaye de programmer un simple programme qui permet d'afficher quelques informations des élèves d'une classe.
Je n'ai pas d'erreur de compilation, cependant mon programme ne marche pas comme attendu.

Ci-joint le script :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct etudiant{

    char * nom;
    char * prenom;
    char * addr;
    int note;

};


void main(){


    printf("ok1");

    struct etudiant e[2];

    printf("ok2");

    strcpy(e[0].nom,"Dupont");
    printf("ok3");

    strcpy(e[0].prenom,"Antoine");    
    printf("ok4");

    strcpy(e[0].addr,"Paris");
    printf("ok5");
    e[0].note = 20;

    printf("svp");

    
    strcpy(e[1].nom,"Jacques");
    strcpy(e[1].prenom,"Hubert");    
    strcpy(e[1].addr,"Lyon");
    e[1].note = 10;

    int k;

    for(k = 0;k<2;k++){

        printf("Letudiant numéro %i est %s %s. Il habite %set sa note est : %i",k+1, e[k].nom,e[k].prenom,e[k].addr,e[k].note);
    }


}






Tout marche normalement jusqu'au "ok3", après quoi rien ne se passe. Je ne comprends pas vraiment d'où vient mon problème...
Aussi, s'il existe des méthodes plus élégantes afin de déclarer chacun de mes étudiant, je suis preneur.

Merci d'avance ! :)
PS : je débute, soyez indulgent sur mon code

Configuration: Windows / Chrome 94.0.4606.71

1 réponse

yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
11 oct. 2021 à 09:34
bonjour,
tu n'as pas alloué d'espace mémoire pour les chaines de caractères de ta structure.
pour commencer, déclare peut-être des tableaux de caractères, plutôt que des pointeurs.
0