Quel est le problème avec ce code?Problème lorsque j'essaie de passer un pointeur struct à une fonction
typedef struct jogador{
char nome[7];
int pecas[6][2];
}Jogador;
void distribuir_pecas(Jogador* jogadores);
int main()
{
Jogador* jogadores;
jogadores = (Jogador*) malloc(4 * sizeof(Jogador));
distribuir_pecas(jogadores);
return 0;
}
void distribuir_pecas(Jogador* jogadores){
int domino[28][2];
int vetor_aux[28];
int i, j;
int peca_sorteada;
int num_jogador = 0;
int num_domino = 0;
srand(time(NULL));
for(i = 0; i < 28; i++){
vetor_aux[i] = 1;
}
for(i = 0 ; i < 7; i++){
for(j = 0; j < 7; j++){
if(j == 0){
j = i;
}
domino[num_domino][0] = i;
domino[num_domino][1] = j;
//printf("%d*%d\n", domino[num_domino][0], domino[num_domino][1]);
num_domino++;
}
}
while(num_jogador < 4){
for(i = 0; i < 6;){
peca_sorteada = rand()%28;
if(vetor_aux[peca_sorteada]){
vetor_aux[peca_sorteada] = 0;
jogadores[num_jogador].pecas[i][0] = domino[peca_sorteada][0];
jogadores[num_jogador].pecas[i][1] = domino[peca_sorteada][1];
i++;
printf("[%d|%d]\n",jogadores[num_jogador].pecas[i] [0],jogadores[num_jogador].pecas[i][1]);
}
}
printf("\n\n");
num_jogador++;
}
}
Lorsque je tente assimiler domino[peca_sorteada][0]
-jogadores[num_jogador].pecas[i][0]
, pour exemple, en utilisant un opérande ->
un ocurrs d'erreur de compilation, mais avec .
opérande printf n'imprime pas la valeur correcte. Pourquoi????
Veuillez clarifier votre question. Donnez un exemple de code qui ne fonctionne pas et donnez la sortie qu'il produit. Aussi, s'il vous plaît simplifier votre exemple de code (avons-nous vraiment besoin de voir toutes ces boucles, et les mallocs, etc?) –