Saltar al contenido

Aplicación no válida de sizeof a un tipo incompleto con una estructura

No olvides que en las ciencias informáticas cualquier problema casi siempre tiene diferentes resoluciones, no obstante aquí enseñamos lo más óptimo y mejor.

Solución:

Significa el archivo que contiene main no tiene acceso a la player definición de estructura (es decir, no sabe cómo se ve).

Prueba a incluirlo en header.h o haga una función similar a un constructor que lo asigne si va a ser un objeto opaco.

EDITAR

Si su objetivo es ocultar la implementación de la estructura, hágalo en un archivo C que tenga acceso a la estructura:

struct player *
init_player(...)

    struct player *p = calloc(1, sizeof *p);

    /* ... */
    return p;

Sin embargo, si la implementación no debe ocultarse, es decir, main debería decir legalmente p->canPlay = 1 sería mejor poner la definición de la estructura en header.h.

La causa de errores como “Aplicación no válida de sizeof a un tipo incompleto con una estructura…” siempre es la falta de una declaración de inclusión. Trate de encontrar la biblioteca adecuada para incluir.

Su error también se muestra al intentar acceder a la sizeof() de un externo no inicializado array:

extern int a[];
sizeof(a);
>> error: invalid application of 'sizeof' to incomplete type 'int[]'

Tenga en cuenta que obtendrá un array size missing error sin el extern palabra clave.

Comentarios y puntuaciones del artículo

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *