Struct con puntero

Iniciado por kraiked, 13 Febrero 2016, 11:46 AM

0 Miembros y 1 Visitante están viendo este tema.

kraiked

Hola, tengo una duda y es que quiero que el programa me pida un int para inicializarlo en una structura, y luego que pinte ese numero en pantalla, y no se que estoy haciendo mal, ya que el numero no se imprime, debe haber algun error ya que el programa termina, la cosa es que al compilar no me da errores. Dejo el codigo a ver si me podeis hechar una mano, gracias.


struct _game{
    int player;
    int jugador;       
           
};
typedef struct _game Game;


Ahí delcaro la estructura

int main(){
    int x;
    T_Command h;
   
    Game *game;
    long y;
    y=3;
    funcion(&y);
    printf ("%ld \n",y);
   
    scanf ("%i",&game->jugador);
    printf ("%i",game->jugador);
   
   
    return 0;
   
   
}


y ahí el resto del programa. Un saludo :)

Eternal Idol

#1
game es un puntero indefinido asi que es logico que se produzca una excepcion no controlada y termine el programa. Siempre es buena idea inicializar las variables; ese codigo deberia mostrarte un warning de este estilo:
warning C4700: uninitialized local variable 'game' used

O usas una variable local o reservas memoria para el puntero y se la asignas.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

kraiked

#2
Entonces tendría que hacer algo asi:

game = (Game*)malloc(sizeof(Game))

Con esto reservaria memoria para el puntero ¿no?

PD: me recomiendan algún libro donde hable sobre todo esto? structuras, punteros y reserva de memoria para estos?

Eternal Idol

Si, es correcto, no te olvides de liberar la memoria reservada, en este caso con free.

Hace muchos años que no compro un libro de C/C++ pero este tema sale en cualquiera incluso de C que tenga 30 años.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

MAFUS

Sobre el libro que pides tienes un buen paper en esta dirección:
www.cimat.mx/~alram/cpa/pointersC.pdf

kraiked

Muchas gracias a los dos por las respuestas :)

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón