Allocation dynamique d'un tableau de structure
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 :
Code:
1 2 3 4 5
| struct FeuilleScore {
int partieSuperieure [9];
int partieInferieure [7];
int scoreFinal;
}; |
(j'ai mis dans un fichier .h correspondant : struct feuilleScore;)
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))
Code:
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;
}; |
Le but est de créer le bon nombre de structures Joueur (une pour chaque joueurs de la partie).
j'ai donc fait cette petite fonction :
Code:
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;
} |
jusque là pas de problèmes.
Puis j'ai fais une fonction qui permet d'associer a chaque structures Joueurs le nom du joueur
Code:
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);
}
} |
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.
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