Я пытаюсь получить размер структуры, которая была определена в другом исходном файле (other.c), чтобы сохранить его скрытым.получить размер скрытой структуры C
В other.h:
typedef struct X x_t;
В other.c:
struct X{
int y;
int z;
};
Теперь я хочу в main.c, чтобы получить размер этой структуры.
#include "other.h"
int main(){
x_t *my_x;
my_x = malloc(sizeof(struct x_t));
return 0;}
Но это дает мне следующую ошибку:
error: invalid application of ‘sizeof’ to incomplete type ‘struct x_t’
Может кто-нибудь мне помочь? Спасибо!
Вы не можете сделать это , Если вы хотите, чтобы 'main.c' мог работать в экземплярах' struct X' (а не на указателях), вам нужно будет иметь определение в файле заголовка. –
'sizeof' оценивается во время компиляции. Если 'struct' не отображается, его размер не может быть определен. –
Нет такой вещи, как 'struct x_t', только' x_t' или 'struct X' – user3078414