PUntero a estructura en c

Publicado por andres88_, Mayo 03, 2009, 15:25:30

Tema anterior - Siguiente tema

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

andres88_

Hola gente haber si me dan una mano

tengo la siguiente estructura:

struct t_fecha{ int dia; int mes; int año;};

struct t_fecha fec;

y quiero hacer un puntero a esa estructura
ta bien asi:

struct t_fecha fec= struct t_fecha *p;

y desp cuando uso la estructura se hace asi:

*p.dia=15;

eso esta bien o la toy pifiando?
punteros no entiedo mucho  :P
para mi es mas facil no usarlos.

focojoaco

lo que esta bueno hacer es, definir la structura en el .c
y en el .h definir un typedef
typedef struct s_queue * queue; (por ejemplo)

entonces en el .c declaras cosas de tipo queue
ejemplo:

queue q;

y para acceder a los campos del struct
usas ->
q->valor (con el punto no)
q->valor=100; (por ejemplo)

se entendio? sino lo hago mas detallado
:D

mati_motorloco

si queres un buen puntero llamalo a Andy Chango :jaja:

focojoaco

Cita de: mati_motorloco en Mayo 04, 2009, 14:36:28
si queres un buen puntero llamalo a Andy Chango :jaja:
uuuu como desvirtuaste  :guns:

JORGE_GNR

Cita de: andres88_ en Mayo 03, 2009, 15:25:30
Hola gente haber si me dan una mano

tengo la siguiente estructura:

struct t_fecha{ int dia; int mes; int año;};

struct t_fecha fec;

y quiero hacer un puntero a esa estructura
ta bien asi:

struct t_fecha fec= struct t_fecha *p;

y desp cuando uso la estructura se hace asi:

*p.dia=15;

eso esta bien o la toy pifiando?
punteros no entiedo mucho  :P
para mi es mas facil no usarlos.

creo q le esta pifiando en el puntero cuando queres usar la estructura la usas asi "p.dia=15" sin el "*" porq el puntero es cuando lo usas en un funcion

si mal no recuerdo es asi  ::)

en 2 semanas rindo el 2ª parcial de programacion  :twisted:

El_Pablo

En este caso conviene definir la estructura asi:

typedef struct fecha_str {
    int dia;
    int mes;
    int anio;
} *fecha;

Y después declaras una variable de tipo "fecha" (sin asterisco, ya que ya esta declarada asi en el typedef)

Es decir, como te dijo focojoaco :P