[Langage C]déplacer un struct dans une fonct°
Résolu/Fermé
skiliss
Messages postés
168
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
20 avril 2012
-
26 nov. 2008 à 09:56
skiliss Messages postés 168 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 avril 2012 - 26 nov. 2008 à 15:39
skiliss Messages postés 168 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 20 avril 2012 - 26 nov. 2008 à 15:39
A voir également:
- [Langage C]déplacer un struct dans une fonct°
- Déplacer une colonne excel - Guide
- Langage ascii - Guide
- Langage binaire - Guide
- Déplacer barre des taches windows 11 - Guide
- Déplacer une fenetre hors écran - Guide
6 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
26 nov. 2008 à 10:06
26 nov. 2008 à 10:06
salut.
je ne comprend rien à ce que tu fait.
met le tyedef après la définition de la structure déjà.
Ensuite, dans métier, si joueur1 est de type "groupe*" alors joueur1[*s] (s est de type "int*" donc joueur1[s] ne fait pas ce que tu attend) est de type "groupe" ce qui n'est pas un type pointeur, donc tu n'as aucune raison d'utiliser l'opérateur "->" !
Une bonne révision de la notion de pointeur me semble nécessaire pour ton cas !
Ou alors n'y touche pas.
je ne comprend rien à ce que tu fait.
met le tyedef après la définition de la structure déjà.
Ensuite, dans métier, si joueur1 est de type "groupe*" alors joueur1[*s] (s est de type "int*" donc joueur1[s] ne fait pas ce que tu attend) est de type "groupe" ce qui n'est pas un type pointeur, donc tu n'as aucune raison d'utiliser l'opérateur "->" !
Une bonne révision de la notion de pointeur me semble nécessaire pour ton cas !
Ou alors n'y touche pas.
skiliss
Messages postés
168
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
20 avril 2012
14
26 nov. 2008 à 10:26
26 nov. 2008 à 10:26
merci sa me fait avancer mais sa donne d'autre erreur
j'ai maintenant l'erreur "invalid type of 'unary*'
je révise aussi les pointeurs
j'ai maintenant l'erreur "invalid type of 'unary*'
void metier(int *s, groupe *joueur1) { int m; printf("Choisissez votre metier :\n"); printf("1.Guerrier\n"); printf("2.Mage\n"); printf("3.Pretre\n\n"); scanf("%d",m); switch(m) { case 1: (*joueur1[*s]).attaque = (*joueur1[*s]).attaque + 2; break; } }
je révise aussi les pointeurs
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
26 nov. 2008 à 11:16
26 nov. 2008 à 11:16
continue à bien réviser alors ! La réponse est dans ce que je t'ai dit avant, si joueur1 est de type "groupe*", alors joueur1[*s] est de type "groupe", et *joueur[*s] n'a donc aucun sens ! C'est comme écrire int a=3;*a=5;a=*4; c'est ppour ça que le compilateur râle. c'est dire que joueur1[*s].attaque suffit.
skiliss
Messages postés
168
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
20 avril 2012
14
26 nov. 2008 à 12:47
26 nov. 2008 à 12:47
c'est bon j'ai modifier et cela fonctionnne mais j'ai encore un souci (il compile, le début fonctionne puis sa plante)
void met(int *s,groupe *joueur1)
void met(int *s,groupe *joueur1)
{ int tmp; printf("Choisissez votre metier :\n"); printf("1.Guerrier\n"); printf("2.Mage\n"); printf("3.Pretre\n\n"); scanf("%f",tmp); if(tmp == 1) { printf("%d Pa\n",(joueur1[*s]).attaque); (joueur1[*s]).attaque += 2; } else { printf("rien"); } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 nov. 2008 à 13:44
26 nov. 2008 à 13:44
Salut,
Remplace scanf("%f",tmp); avec
Remplace scanf("%f",tmp); avec
scanf("%d",&tmp);
skiliss
Messages postés
168
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
20 avril 2012
14
26 nov. 2008 à 15:39
26 nov. 2008 à 15:39
sa marche merci