A voir également:
- Initialiser tableau struct pointeur
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
1 réponse
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
8 janv. 2009 à 11:56
8 janv. 2009 à 11:56
Personne joueur[nbr];
initialiserJoueur(&joueur[nbr]);
donc joueur est un tableau de nbr cases de type Personne ok ?
Donc lorsque tu passe &joueur[nbr] à la fonction, tu passe le pointeur vers la case nbr de joueur, donc de type Personne*.
Déjà une grosse erreur ici, la case numéro nbr n'existe pas, car tu commence à 0 tout tableau ! Ce qui te causera une erreur de segmentation.
Pour en revenir à ton problème, la prototype de ta fonction est déclaré ainsi :
void initialiserJoueur(Personne *joueur[nbr])
Je ne suis pas tout à fait sur (je n'aime les déclarations en tableau, c'est tordu) mais là joueur est un tableau de nbr cases contenant des pointeur de Personne (contenant des Personne*), et comme tu lui passe une variable de type Personne* c'est normal qu'il râle.
Une bonne grosse révision (apprentissage ?) des tableaux et pointeurs en C ne te ferai pas de mal. C'est une erreur très classique. En survolant ton programme, j'en vois d'ailleur, une quantité... presque une par ligne.
initialiserJoueur(&joueur[nbr]);
donc joueur est un tableau de nbr cases de type Personne ok ?
Donc lorsque tu passe &joueur[nbr] à la fonction, tu passe le pointeur vers la case nbr de joueur, donc de type Personne*.
Déjà une grosse erreur ici, la case numéro nbr n'existe pas, car tu commence à 0 tout tableau ! Ce qui te causera une erreur de segmentation.
Pour en revenir à ton problème, la prototype de ta fonction est déclaré ainsi :
void initialiserJoueur(Personne *joueur[nbr])
Je ne suis pas tout à fait sur (je n'aime les déclarations en tableau, c'est tordu) mais là joueur est un tableau de nbr cases contenant des pointeur de Personne (contenant des Personne*), et comme tu lui passe une variable de type Personne* c'est normal qu'il râle.
Une bonne grosse révision (apprentissage ?) des tableaux et pointeurs en C ne te ferai pas de mal. C'est une erreur très classique. En survolant ton programme, j'en vois d'ailleur, une quantité... presque une par ligne.
8 janv. 2009 à 20:07
En faite, je m'initie avec le site du zéro. Je peux rien dire si c'est tordu ou pas de mettre des tableaux en argument, mais c'est ce qu'il conseille dans ce site, ou alors j'ai mal lu... qui sait c'est mes premiers jours de découverte dans le monde de la programmation.
En ce qui concerne nbr, je crois bien qu'il ne sert effectivement à rien... si j'ai bien compris.
Tu me dis que tu vois des ...boulettes... au fil de chaque ligne, presque. Peux tu m'en dire plus.
^^ sincerement.