C - ошибка: размер хранилища 'a не известен

Это моя программа на C...

#include <stdio.h>

struct xyx {
    int x;
    int y;
    char c;
    char str[20];
    int arr[2];
};

int main(void)
{
    struct xyz a;
    a.x = 100;
    printf("%d\n", a.x);
    return 0;
}

Это ошибка, которую я получаю....

Нажмите ENTER или введите команду для продолжения

13structtest.c: In function ‘main’:
13structtest.c:13:13: error: storage size of ‘a’ isn’t known
13structtest.c:13:13: warning: unused variable ‘a’ [-Wunused-variable]

Ответ 2

Скажите так: struct xyx a;

Ответ 3

вы определяете структуру как xyx, но вы пытаетесь создать структуру, называемую xyz.

Ответ 4

Вы определяете свою структуру как xyx, однако в основном вы используете struct xyz a; , который создает только декларацию forward с именованной структурой.

Попробуйте использовать xyx a; вместо этой строки.

Ответ 5

правильная опечатка

struct xyz a;

to

struct xyx a;

Лучше вы можете попробовать typedef, легко b

Ответ 6

Кому-то, у кого есть эта проблема, есть опечатка. Проверьте правильность написания ваших структурных издевательств и структуры

Ответ 7

В этом случае пользователь ошибся в определении и его использовании. Если кто-то сделал typedef для структуры, то то же самое следует использовать без использования struct, приведенного ниже.

typedef struct
{
   int a;
}studyT;

При использовании в функции

int main()
{
   struct studyT study; // This will give above error.
   studyT stud; // This will eliminate the above error.
   return 0;
}