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 :

probleme structure en parametre


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 53
    Points : 44
    Points
    44
    Par défaut probleme structure en parametre
    Bonjour,
    j'apprend le C grace aux tutos, et j'ai un probleme pour passer en parametre une structure !!
    j'essaie de faire un programme permettant de lire un nom et de le rentrer dans une structure, mais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void rajout(info *joueur,int pos){
                             printf("nom du joueur %i?\n",(pos+1));
                             scanf("%s",joueur[pos].nom);
                             };
    ceci étant ma fonction; voici mon code principal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int main(int argc, char *argv[])
      { info joueur[2];
        int pos=1;
        rajout(&joueur[pos],pos);
        return 0;
        }
    pos étant le numero du joueur qui doit etre inscrit
    et joueur étant de type info c'est-à-dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    typedef struct info info;
    struct info{
           char nom[50];
           char prenom[50];
           int age;
           int garcon;
           };

    le probleme c'est que lorsque le programme rentre dans la fonction, il rentre bien les coordonées lues, mais lorsqu'il retourne dans le code principal les coordonées ne sont pas bonnes !
    je dois avoir un probleme de pointeur ou de parametre, mais je ne trouve vraiment pas !!

    si quelqu'un peut m'aider... merci !!

  2. #2
    Bob
    Bob est déconnecté
    Membre averti
    Avatar de Bob
    Inscrit en
    Mars 2002
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 115
    Points : 378
    Points
    378
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rajout(&joueur[pos],pos);
    Plusieurs choses, deja en C les tableaux sont indexes a partir de 0 et non de 1. Pour inserer le 1er joueur tu dois utiliser pos=0.

    Ensuite tu passes deja un pointeur sur l'endroit ou tu veux inserer la donnee :
    &joueur[1] pointeur sur la 2e entree de ton tableau.
    Mais dans ta fonction tu utilises joueur[pos] donc tu redecale une nouvelle fois dans le tableau et tu sors du tableau.

    Il faut appeler :

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 53
    Points : 44
    Points
    44
    Par défaut
    ok ,merci !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 25/01/2006, 08h29
  2. Problème de reception parametre dans script sh
    Par lolo_ici_et_la dans le forum Linux
    Réponses: 1
    Dernier message: 05/01/2006, 18h55
  3. [debutant] probleme url comme parametre
    Par orelero dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 14h51
  4. Probleme passge de parametres script
    Par Dom_the_quaker dans le forum Langage
    Réponses: 4
    Dernier message: 27/09/2005, 18h15
  5. Probleme valeur de parametre dans une fonction
    Par TitouLolo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/05/2005, 14h56

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