Título: Castear estructura en un archivo.c distinto al main Publicado por: Fabi0lo en 19 Noviembre 2012, 21:36 pm Buenas, estoy haciendo una tarea y de momento me topé en una duda que no se como resolver.
Necesito ingresar un tipo de estructura como parámetro pero con (void*) a un archivo.c distinto al main.c Esto es lo que tengo definido en el main.c: Código
y esto es lo que recibo en lectura.c: Código
Al compilar, me da error, la estructura str está definido en el main.c, pero no en lectura.c PD: Necesito hacer uso de void*, ya que (tengo entendido que) con pthread funciona así. ¿Tengo que redefinir la estructura en lectura.c? no importa si sea redundante?? Título: Re: Castear estructura en un archivo.c distinto al main Publicado por: rir3760 en 19 Noviembre 2012, 23:39 pm ¿Tengo que redefinir la estructura en lectura.c? no importa si sea redundante? Tienes que incluir la declaración del tipo:Código En todas las unidades (archivos de código fuente) que así lo requieran (donde se declaren variables de ese tipo). La convención en estos casos es colocar las declaraciones de tipos y macros en archivos (usualmente con la extensión ".h") y utilizar la directiva: Código Para sustituir esa linea con el contenido del archivo indicado (las declaraciones). Y no hay problema con tener la declaración en varios archivos. Un saludo Título: Re: Castear estructura en un archivo.c distinto al main Publicado por: Fabi0lo en 20 Noviembre 2012, 19:47 pm Gracias, ahora que lo intento (como siempre) me esta tirando una pifia
Código
con Código me tira este error Código y eso que aun no implemento la cabecera... Título: Re: Castear estructura en un archivo.c distinto al main Publicado por: rir3760 en 20 Noviembre 2012, 23:29 pm El error se emite porque "Estructura" es una variable, no puedes (en la función "getStruct") utilizarla como si fuera una dirección de memoria:
Código
Si la intención es retornar la dirección en memoria de esa variable debes utilizar el operador "dirección de" (el '&'): Código
Un saludo |