Problème pointeurs
Fermé
YoungDev
-
26 oct. 2016 à 12:43
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 26 oct. 2016 à 16:14
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 26 oct. 2016 à 16:14
1 réponse
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 26/10/2016 à 16:17
Modifié par [Dal] le 26/10/2016 à 16:17
Salut YoungDev,
Ton erreur de compilation est due au fait que lorsque tu appelles la fonction, tu inclues dans les paramètres d'appel le type des paramètres. Il faut juste passer les paramètres.
Comme cela :
Ensuite, dans ton main, tu t'encombres inutilement de variables long *xhpmoi, etc., que tu n'utilises pas.
Enfin, dans ta fonction, puisque tu passes déjà des pointeurs sur un long, tu as déjà ce qu'il te faut avec les paramètres passés, et là aussi tes variables additionnelles sont inutiles.
Au final, cela donne ceci, ce qui est beaucoup plus simple :
Dal
Ton erreur de compilation est due au fait que lorsque tu appelles la fonction, tu inclues dans les paramètres d'appel le type des paramètres. Il faut juste passer les paramètres.
Comme cela :
setgamestate(&hpmoi, &hpadv, &cartesdeck, &fatiguemoi, &fatigueadv);
Ensuite, dans ton main, tu t'encombres inutilement de variables long *xhpmoi, etc., que tu n'utilises pas.
Enfin, dans ta fonction, puisque tu passes déjà des pointeurs sur un long, tu as déjà ce qu'il te faut avec les paramètres passés, et là aussi tes variables additionnelles sont inutiles.
Au final, cela donne ceci, ce qui est beaucoup plus simple :
#include <stdlib.h> #include <stdio.h> void setgamestate(); int main(void) { long hpmoi = 0; long hpadv = 0; long cartesdeck = 0; long fatiguemoi = 0; long fatigueadv = 0; setgamestate(&hpmoi, &hpadv, &cartesdeck, &fatiguemoi, &fatigueadv); printf("%ld, %ld, %ld, %ld, %ld\n", hpmoi, hpadv, cartesdeck, fatiguemoi, fatigueadv); /*verifier valeurs variables*/ return EXIT_SUCCESS; } void setgamestate(long * phpmoi, long * phpadv, long * pcartesdeck, long * pfatiguemoi, long * pfatigueadv) { printf("Mes hp :\n"); scanf("%ld", phpmoi); printf("Hp adverses :\n"); scanf("%ld", phpadv); printf("Nombre de cartes de mon deck\n"); scanf("%ld", pcartesdeck); printf("Mes dégats de fatigue :\n"); scanf("%ld", pfatiguemoi); printf("Les dégats de fatigue de l'adversaire :\n"); scanf("%ld", pfatigueadv); printf("\n\n"); printf("%ld, %ld, %ld, %ld, %ld\n", *phpmoi, *phpadv, *pcartesdeck, *pfatiguemoi, *pfatigueadv); /*verifier valeurs variables*/ printf("\n\n"); }
Dal