Manejar puntero dentro de un struct en C

0 votos
preguntado por salvart (120 puntos) Ene 28, 2016 en C/C++
Hola,

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

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("%dn",Date.year);

    printf("%dn",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!


1 Respuesta

0 votos
respondido por fiurer87 (3,260 puntos) Ene 28, 2016
Hola, tu codigo es funcional, el unico detalle es que como year es una array no puedes acceder a el simplemente con year, debes necesariamente hacer referencia con un indice year[indice], tal como lo hiciste con la posicion numero [1] que en realidas el el 2do dato, el dato uno esta en la posicion [0]. Ahora te mando una modificacion (minima) del codigo que mandaste para que todo funcione a la perfeccion, al menos lo que trata de hacer tu codigo.

=================================================================

#include <stdio.h>

#include <stdlib.h>

struct fecha{

    int *year;

};

void leerFecha(struct fecha *date){

    (*date).year[0] = 3; //Modificado

    (*date).year[1] = 4;

}

int main(){

    struct fecha date;

    date.year = (int*)malloc( 300*sizeof(int) );

    leerFecha(&amp;date);

    printf(&quot;%dn&quot;,date.year[0]); //Modificado

    printf(&quot;%dn&quot;,date.year[1]);

    return 0;

}


Preguntas relacionadas

0 votos
0 respuestas
preguntado por leosequeira (120 puntos) Ene 28, 2016 en C/C++
0 votos
0 respuestas
preguntado por 1bept (120 puntos) Ene 28, 2016 en C/C++
0 votos
25 respuestas
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código
...