no deberias utilizar feof para ver si ya leyeron todos los registros.
hazlo de la siguiente forma
fseek(fichero_nombres , 0, SEEK_END);
int numReg= ftell(fichero_nombres)/sizeof(jugador);
rewind(fichero_nombres );
int i=0;
for(i = 0; i< numReg; ++i)
{
printf("%i. ", i+1);
fread( &jugador, sizeof(jugador), 1, fichero_nombres );
printf("%s\n\n", jugador.nombre);
}
para mayor información de como usar estas funciones
http://www.cplusplus.com/reference/c.../cstdio/fseek/