acceso a estructura en C
Hola a todos.
Os planteo un error, para algunos puede parecer muy simple, pero q me trae de cabeza.
Necesito acceder a un array de estructuras generado en tiempo de ejecucion, pero al intentar acceder a un dato de una posicion del array me kaska la compilacion. En si el tipo de dato es muy simplon, dos campos accedidos desde un array q se genera en ejecucion con el "calloc":
Estructura *TD;
TD = (Estructura *)calloc(<int>, sizeof(Estructura) );
Dado q hay q generar un puntero para recoger la posicion de memoria q devuelve "calloc", intento acceder a los datos con dicho puntero:
*TD[i]->campo
pero me da el siguiente error:
error 1532: Reference through a non-pointer.
error 1554: Indirection must be through a pointer.
He probado con casts y a poner * y & por tos laosss... pero nada. En que me equivoco?
Muchas gracias a todos.
Un saludo.
Os planteo un error, para algunos puede parecer muy simple, pero q me trae de cabeza.
Necesito acceder a un array de estructuras generado en tiempo de ejecucion, pero al intentar acceder a un dato de una posicion del array me kaska la compilacion. En si el tipo de dato es muy simplon, dos campos accedidos desde un array q se genera en ejecucion con el "calloc":
Estructura *TD;
TD = (Estructura *)calloc(<int>, sizeof(Estructura) );
Dado q hay q generar un puntero para recoger la posicion de memoria q devuelve "calloc", intento acceder a los datos con dicho puntero:
*TD[i]->campo
pero me da el siguiente error:
error 1532: Reference through a non-pointer.
error 1554: Indirection must be through a pointer.
He probado con casts y a poner * y & por tos laosss... pero nada. En que me equivoco?
Muchas gracias a todos.
Un saludo.
Bueno, parece que me he liado un poco.
Tal cual lo tienes TD es un puntero.
TD[i] ya es la estructura.
Prueba TD[i].campo
Si no va asi, ponlo entre paréntesis (TD[i]).campo
Se bueno.
Tal cual lo tienes TD es un puntero.
TD[i] ya es la estructura.
Prueba TD[i].campo
Si no va asi, ponlo entre paréntesis (TD[i]).campo
Se bueno.
TD[i] ya es un puntero a la estructura. Puedes acceder directamente al campo, sin poner el *
TD[i]->campo
Si pones el asterisco, tienes la estructura en si y se accede al campo con un . en vez de con una ->
(*TD[i]).campo
Se bueno
TD[i]->campo
Si pones el asterisco, tienes la estructura en si y se accede al campo con un . en vez de con una ->
(*TD[i]).campo
Se bueno
Gracias por la respuesta y la rapidez....
He probado tu solucion pero no fulula...
Con TD[i]->campo me sigue saliendo el mismo error y con (*TD[i]).campo me sale este mensaje al compilar:
error 1554: Indirection must be through a pointer.
error 1529: Cannot select field of non-structure.
ta jodio el asunto eeehhh.... sera por el compilador? (no me acepta los comentarios con // ).
+ salu2
He probado tu solucion pero no fulula...
Con TD[i]->campo me sigue saliendo el mismo error y con (*TD[i]).campo me sale este mensaje al compilar:
error 1554: Indirection must be through a pointer.
error 1529: Cannot select field of non-structure.
ta jodio el asunto eeehhh.... sera por el compilador? (no me acepta los comentarios con // ).
+ salu2
