|
|
|
|
Bonjour,
Mon problème est que je n'arrive pas a déplacer une structure d'un fonction a une autre en langage C.
main.h
#include <stdio.h>
#include <stdlib.h>
typedef struct groupe groupe;
struct groupe
{
char nom[20];
int attaque;
int PV;
};
#include <stdio.h>
#include <stdlib.h>
#include "main.h"
int main(int argc, char *argv[])
{
groupe joueur1[4];// création d'un variable groupe 1
groupe joueur2[4]; //création d'une variable groupe 2
}
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;
break;
}
} Salut.
|
Merci sa me fait avancer mais sa donne d'autre erreur
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 Qu'est ce qu'on serai mieux avec une machine a écrire ! |
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.
Salutation !
|
C'est bon j'ai modifier et cela fonctionnne mais j'ai encore un souci (il compile, le début fonctionne puis sa plante)
{
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");
}
}
Qu'est ce qu'on serai mieux avec une machine a écrire ! |