Инициализация структуры в структуре

0

Я пытаюсь инициализировать структуру, которая находится внутри другой структуры с несколькими членами. Скажем, я хочу инициализировать структуру с 2 членами int, после чего я могу использовать следующее:

firstStruct struct1 = { 5 , 7 };

Но скажу, что я хочу инициализировать одну и ту же структуру, но на этот раз она является членом другой структуры:

(членами secondStruct являются char и firstStruct)

secondStruct struct2 = { 'A' , { 6 , 8 } };

Stucts:

typedef struct firstStruct 
{
    int a;
    int b;  
} firstStruct;

typedef struct secondStruct
{
    firstStruct a;
    char b;
} secondStruct;

Но это не работает. Как мне это сделать?

(Я искал другие сообщения с этой темой, но их не нашел. Возможно, я неправильно поставил вопрос.)

Благодарю!

  • 2
    Какие структуры?
  • 0
    Что такое S1? Тип определения?
Показать ещё 9 комментариев
Теги:
struct

4 ответа

0
Лучший ответ

Следующие работы для меня...

struct firstStruct {int a, b;};

firstStruct struct1 = { 5 , 7 };

struct secondStruct {char a; firstStruct b;};

secondStruct struct2 = { 'A' , { 6 , 8 } };
1

использование

secondStruct struct2 = {{ 6 , 8} , 'A'};

Вопросы для заказа.

0

Обычно он должен работать так, как вы его написали. Единственная проблема, которую я вижу, - это то, что вам нужно выполнить порядок переменных...

struct firstStruct 
{
    int a;
    int b;  
};

struct secondStruct
{
    S1 a;
    char b;
};

secondstruct = { { 1, 2 }, 3 };

Чтобы инициализировать структуру в структуре, я думаю, что ее нужно скопировать в скобки (хотя это верно в вашем примере)...

0

Вы неправильно заказали свою инициализацию. С помощью structs вам нужно инициализировать каждого члена в нужном месте. Вы объявили firstStruct перед char, поэтому вам нужно инициализировать его перед символом, например {{5, 7}, 'A'}.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню