Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Manejar puntero dentro de un struct

Estas en el tema de Manejar puntero dentro de un struct en el foro de C/C++ en Foros del Web. Hola, estoy teniendo un pequeño problemilla, os pongo el código y os explico mi duda: Código: struct fecha { int *year; }; void LeerFecha(struct fecha ...
  #1 (permalink)  
Antiguo 20/05/2010, 05:50
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 13 años, 11 meses
Puntos: 0
Manejar puntero dentro de un struct

Hola,

estoy teniendo un pequeño problemilla, os pongo el código y os explico mi duda:

Código:
struct fecha
{
	int *year;
};

void LeerFecha(struct fecha *Date)
{
	(*Date).year=3;
	(*Date).year[1]=4;

}

int main()
{
	
	struct fecha Date;
	
	Date.year = (int*)malloc ( 300*sizeof(int) );

	
	LeerFecha(&Date);

	printf("%d\n",Date.year);
	printf("%d\n",Date.year[1]);

	return 0;	
}
Quiero manejar el puntero *year que está dentro del struct. Pero no acabo de entender como es la sintaxis (o lo que sea) para acceder a la 2º posicion de "year"...

Bueno espero que se haya entendido.

Gracias de antemano y un saludo!
  #2 (permalink)  
Antiguo 20/05/2010, 07:07
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Manejar puntero dentro de un struct

La sintaxis es la misma que si tuvieras el puntero suelto, osea no en un struct.

Para acceder a la primero posicion haces: year[0]
PAra accedir a la segunda posicion haces: year[1]


Tu problema esta aquir:
(*Date).year=3;
Al hacer eso tu puntero pasa a apuntar a la direccion 3, que por supuesto te debe dar fallo de segmentacion.

Ahora si lo tiene en una estructura haces:

Date.year[0] o Date->year[0] depende si Date es la estructura o es un puntero a la estructura.
En tu ejemplo en LeerFecha deberias usar:
Date->year[0]
Porque tu Date esta definida asi: struct fecha *Date
  #3 (permalink)  
Antiguo 20/05/2010, 08:16
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Manejar puntero dentro de un struct

Muchas gracias Sam50!!!

Etiquetas: manejar, puntero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:56.