Porque cuando declaras una variable fuera de toda función (en tu caso "Jugador") y quieres darle un valor inicial este debe ser uno constante como 123 o "alguna cadena" (no puedes utilizar llamadas a función).
Un saludo
Esta duda la tengo porque estoy haciendo un programa que simule el juego del poker.
Y relacionado con esto tengo lo siguiente:
typedef char* String;
struct jugador{
String nombreJugador;
int nFichas;
int posicion;
String *cara;
String *palo;
};
// código
int main(void)
{
// código
Jugador = malloc(5 * sizeof(*Jugador));
//código
reservaMemoriaManos();
//código
return EXIT_SUCCESS;
}
void reservaMemoriaManos()
{
int i, j;
for(i = 0; i<5; i++){
(Jugador + i) -> cara = (char **)malloc(2 * sizeof(char *));
(Jugador + i) -> palo = (char **)malloc(2 * sizeof(char *));
for(j = 0; j<2; j++){
(Jugador + i) -> cara[j] = (char *)malloc(7 * sizeof(char));
(Jugador + i) -> palo[j] = (char *)malloc(10 * sizeof(char));
}
}
return;
}
Y en esta última función me parece que falla el programa. Pero no sé que es.
Lo que intento hacer es que cada uno de los 5 jugadores declarados con
Jugador = malloc(5 * sizeof(*Jugador));
tengan 2 cartas, por los que deberán tener 2 palos y 2 figuras.
Lo escribo aquí para no abrir un nuevo tema, ya que está relacionado con lo anterior.
Un saludo