obtener el tamaño de la estructura oculta C

Intento obtener el tamaño de una estructura que se definió en un archivo fuente diferente (other.c) para mantenerlo oculto.

En el otro.h:

typedef struct X x_t; 

En el otro.c:

 struct X{ int y; int z; }; 

Ahora quiero en main.c obtener el tamaño de esta estructura.

 #include "other.h" int main(){ x_t *my_x; my_x = malloc(sizeof(struct x_t)); return 0;} 

Pero esto me da el siguiente error:

 error: invalid application of 'sizeof' to incomplete type 'struct x_t' 

Alguien puede ayudarme? ¡Gracias!

Todo el propósito de tener una struct oculta es controlar cuidadosamente su construcción, su destrucción y el acceso a los contenidos.

Las funciones para construir, destruir, obtener el contenido y establecer el contenido deben proporcionarse para que la struct oculta sea útil.

Aquí hay un ejemplo de lo que podrían ser los archivos .h y .c:

otro.h:

 typedef struct X x_t; x_t* construct_x(void); void destruct_x(x_t* x); void set_y(x_t* x, int y); int get_y(x_t* x); void set_z(x_t* x, int z); int get_z(x_t* x); 

otro.c:

 struct X { int y; int z; }; x_t* construct_x(void) { return malloc(sizeof(x_t)); } void destruct_x(x_t* x) { free(x); } void set_y(x_t* x, int y) { x->y = y; } int get_y(x_t* x) { return x->y; } void set_z(x_t* x, int z) { x->z = z; } int get_z(x_t* x) { rteurn x->z; }