Bonjour,
Je dois programmer un jeu de Yathzee pour un projet de fac en C, et j'ai un petit problème concernant une déclaration dynamique d'un tableau de structure. Je m'explique :
J'ai deux structure (dans deux fichier .C différent)
La première :
(j'ai mis dans un fichier .h correspondant : struct feuilleScore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 struct FeuilleScore { int partieSuperieure [9]; int partieInferieure [7]; int scoreFinal; };
et la deuxieme :
(j'ai mis en début de fichier #include "ProjetB.h" (c'est le .h du fichier .c où j'ai déclaré ma structure feuilleScore))
Le but est de créer le bon nombre de structures Joueur (une pour chaque joueurs de la partie).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 struct Joueur { char* nom; int nblancerRestants; int Des [5]; //les dés du joueur (5 dés) struct FeuilleScore; };
j'ai donc fait cette petite fonction :
jusque là pas de problèmes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 struct Joueur* nombreJoueurs(void){ int nombreJoueurs; printf("Combien de joueurs vont participer a la partie ? (1/2/3/...)"); scanf("%d",&nombreJoueurs); struct Joueur* tab; tab = malloc(sizeof(tab) * nombreJoueurs); return tab; }
Puis j'ai fais une fonction qui permet d'associer a chaque structures Joueurs le nom du joueur
sauf qu'a partir de là ... ça ne marche plus du tout, peut importe le nombre de joueurs , mon nomJoueurs me propose toujours le nom de deux joueurs a mètre, et ensuite windows me dit que mon programme a cessé de fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void nomJoueurs (struct Joueur * tab) { int i = 0; for(i;i<sizeof(tab);i++){ printf("Nom du joueur %d ? ",i+1); scanf("%s",tab[i].nom); } }
Je pense donc que le problème vient de mon allocation dynamique de ma structure. Dois-je faire la même chose pour la structure FeuilleScore qui est dans la structure Joueur ?
Merci d'avance
Partager