Erreur du type Expected identifier
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Erreur du type Expected identifier



  1. #1
    Pavidran

    Erreur du type Expected identifier


    ------

    Bonjour, je suis entrain de travailler sur les structures. J'ai crée une structure "Etudiant_t" qui contient les informations sur l'étudiant et une autre structure "classEtud" qui contient le nombre d'étudiants et un tableau dynamique qui stocke les étudiants. Mais lorsque je lance mon code ça m'affiche une erreur au niveau de mon scanf "Expected identifier"

    Pouvez-vous m'aider, merci.

    Voici le code:

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include "fonction.h"
    
    void lireTabEtudiant(Etudiant_t*student , int n)
    {
        
      int i;
        
      Etudiant_t *listeEtud=NULL;
        
      listeEtud=malloc(n*sizeof( Etudiant_t));
        
        
     if(n>0){
        
             for(i=0;i<n;i++)
                  {
                   printf("entrer votre nom");
                   scanf("%s",student->*(listeEtud+i)->nom);
                   printf("entrer votre prenom ");
                   scanf("%s",student->*(listeEtud+i)->prenom);
                  }
              }
    }

    -----
    Dernière modification par Jack ; 28/08/2020 à 12h59. Motif: Balises code

  2. #2
    CM63

    Re : Erreur du type Expected identifier

    Il veut dire qu'il s'attendait à un identifiant. Le fait est que tu mets la flèche suivie d'une étoile ->* , ça m'étonnerait que ce soit bon (je n'ai pas creusé).

    Sinon, je te conseille de mettre un blanc avant l'étoile, comme ceci:

    Code:
    void lireTabEtudiant(Etudiant_t *student , int n)
    (et de ne pas en mettre entre "stu" et "dent").

  3. #3
    CM63

    Re : Erreur du type Expected identifier

    Autre chose: si tu passes la liste d'étudiant en argument à la routine, il ne faut pas redimensionner un tableau dans la routine, il faut l'avoir fait dans le programme appelant.
    D"autre part, peux-tu nous donner la déclaration de la structure Etudiant_t ? C'est peut-être dans fonction.h .
    Dernière modification par CM63 ; 28/08/2020 à 08h35.

  4. #4
    Pavidran

    Re : Erreur du type Expected identifier

    Voici mes structures :

    Code:
    typedef struct {
       char nom[30];
       char prenom[30];
    }Etudiant_t;
    
    typedef struct {
       Etudiant_t *listeEtud;
       int nb_Etud;
    }classEtud;
    Dernière modification par Jack ; 28/08/2020 à 12h59. Motif: Balises code

  5. A voir en vidéo sur Futura
  6. #5
    CM63

    Re : Erreur du type Expected identifier

    Ok, maintenant il faut faire le malloc dans le main et pas dans la routine.

  7. #6
    pm42

    Re : Erreur du type Expected identifier

    Citation Envoyé par CM63 Voir le message
    Ok, maintenant il faut faire le malloc dans le main et pas dans la routine.
    Surtout que là il ne sert à rien. Il semble aussi que le *(listeEtud+i)->nom soit faux : ce serait un plutôt que ->. A vérifier comme pas mal de choses vu qu’il semble y avoir beaucoup d’erreurs et je manque de temps pour creuser.

  8. #7
    umfred

    Re : Erreur du type Expected identifier

    Autre chose, pourquoi ce n'est pas une variable de type classEtud qui est passée en paramètre et utilisée dans ta fonction ? (ou renvoyée par cette fonction) vu que classEtud contient à la fois la liste des étudiants et le nombre d'étudiants

  9. #8
    Pavidran

    Re : Erreur du type Expected identifier

    Merci de vous retour.

  10. #9
    Jack
    Modérateur

    Re : Erreur du type Expected identifier

    Il faut mettre des crochets [ et ] autour du mot code ou /code pour en faire des balises.
    Sinon, bouton # dans l'éditeur avancé comme précisé dans les règles participatives de ce forum
    Dernière modification par Jack ; 28/08/2020 à 12h58.

  11. #10
    Paraboloide_Hyperbolique

    Re : Erreur du type Expected identifier

    Bonjour,

    Le code est en effet confus. Comme suggéré, il vaut mieux que l'allocation se fasse dans une autre fonction et passer en paramètre un objet de type classEtud*

    La fonction devient alors:

    Code:
    void lireTabEtudiant(classEtud* student , int n)
    {
        
      int i;
        
    //  if(n>0){ // Inutile: si n <= 0, alors la condition i < n est toujours fausse et l'on entre jamais dans la boucle.
        
             for(i=0;i<n;i++)
                  {
                   printf("entrer votre nom");
                   scanf("%s",(student->listeEtud+i)->nom);
                   printf("entrer votre prenom ");
                   scanf("%s",(student->listeEtud+i)->prenom);
                  }
    //          }
    }

Discussions similaires

  1. [Programmation] problème erreur arduino " exit status 1 expected '}' before 'else' "
    Par sakloub dans le forum Électronique
    Réponses: 18
    Dernier message: 06/04/2020, 16h54
  2. Type de racine (bois) à identifier
    Par invite44f27631 dans le forum Identification des espèces animales ou végétales
    Réponses: 0
    Dernier message: 07/10/2013, 01h50
  3. Erreur type sur l'écart-type
    Par invited00d5034 dans le forum Mathématiques du supérieur
    Réponses: 39
    Dernier message: 19/01/2013, 04h12