IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Structures, pointeurs et paramètre de fonction


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Structures, pointeurs et paramètre de fonction
    Voila, j'ai un projet a réaliser en C et je n'arrive pas a mettre une structure en paramètre d'une fonction.. regardez plutot le code :

    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
     
     
    typedef struct  //structure des personnages par default
           {
                  char race; //peut-être utile lors du codage
                  char nom [20];
                  int hp; //directement définie par la race du groupe, groupe de 5 de même race
                  char job; //choisir en fonction de la race, ex : un nain ne peut pas être un mage
                  int sort_dispo; //disponible une fois tout les deux tours(0 ou 1)
                     }perso;
     
    struct groupe
          {
           char race; //Declaration de la variable race
           perso perso1;
           perso perso2;
           perso perso3;
           perso perso4;
           perso perso5;
     
           };
     
    int main()
    {
    char race;
    int a;
     
    struct groupe groupe1, groupe2;
     
    //groupe * p1; //declaration du type de pointeur
     
    //p1 = (struct groupe *) malloc( sizeof(struct groupe) );
    //p1 = &groupe1; //assignation du pointeur a la structure
     
    //groupe * p2;
     
    //p2 = (struct groupe *) malloc( sizeof(struct groupe) );
    //p2 = &groupe2;
     
    choix_race(race, a, &groupe1, &groupe2);
     
      system("PAUSE");	
      return 0;
    Et voici la déclaration de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           void choix_race(char race, int a, struct groupe * p1, struct groupe * p2)
    Et voici l'erreur du compilateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     [Warning] "struct groupe" declared inside parameter list 
    [Warning] its scope is only this definition or declaration, which is probably not what you want

    Certains commentaires sont des tests effectuer a l'aide des pointeurs mais différement, mais rien ne marche. S'il vous plait, aidez moi, j'ai presque plus de cheveux :\

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut Re: Structures, pointeurs et paramètre de fonction
    Citation Envoyé par podidoo
    Certains commentaires sont des tests effectuer a l'aide des pointeurs mais différement, mais rien ne marche. S'il vous plait, aidez moi, j'ai presque plus de cheuveux :\
    Normal, ça s'écrit cheveux

    La déclaration de la fonction a été faite avant celle des structures ?
    Les deux sont dans le même fichier ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    La fonction se trouve dans un fichier différent, elle est donc après celle des structures

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Oui, mais as-tu inclus le .h où sont définies ces structures ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Heuuu, j'ai placé mes structures au-dessus de la fonction main (comme sur le code source du 1er post).
    Es-ce-que je suis obligé de placer mes structures dans un fichier .h ?

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 95
    Points : 66
    Points
    66
    Par défaut
    Pourquoi n'utilise tu pas de typedef pour groupe ??
    Ca facilite la vie et c'est plus lisible (de mon point de vue)

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par podidoo
    La fonction se trouve dans un fichier différent, elle est donc après celle des structures
    Problème d'organisation du code.

    Principe de base : on définit avant d'utiliser.

    http://emmanuel-delahaye.developpez.com/codage.htm
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par podidoo
    Heuuu, j'ai placé mes structures au-dessus de la fonction main (comme sur le code source du 1er post).
    Es-ce-que je suis obligé de placer mes structures dans un fichier .h ?
    Oui, c'est plus clair.
    Pas de Wi-Fi à la maison : CPL

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    J'ai placé mes structure dans un .h et la fonction passe maintenant. Merci pour vos réponses mais un nouveau petit probleme se pose pour moi :

    Lorsque je veux attribuer une valeur à une variable de ma structure je procède de la manière suivante :
    pour attribuer la valeur x à la variable race de ma structure groupe1.

    Cependant, dans ma fonction, la structure 'groupe1' est représentée par le pointeur p1; alors comment puis-je attribuer une valeur à ma variable 'race' ?
    ne marche pas :\

  10. #10
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    ne marche pas :\
    Essaie:
    ou

    Jc

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    ca semble marcher, du moins le compilateur ne dit rien de méchant, merci beaucoup pour tout ces commentaires.





Discussions similaires

  1. Réponses: 7
    Dernier message: 17/11/2011, 10h16
  2. Réponses: 3
    Dernier message: 22/07/2008, 10h46
  3. Pointeurs et paramètres de fonction
    Par tom31 dans le forum Débuter
    Réponses: 2
    Dernier message: 12/01/2008, 20h58
  4. paramètres fonction structures pointeurs
    Par tom31 dans le forum Débuter
    Réponses: 2
    Dernier message: 12/01/2008, 18h22
  5. Paramètres de fonction : pointeurs ou valeurs ?
    Par Xandar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/11/2005, 16h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo