где мясо и картошка в

вопрос касается определенности или иного назначения неинициализированной автоматической переменной другой переменной того же типа.

Рассмотреть возможность

typedef struct
{
    int s1;
    int s2;
} Foo;

typedef union
{
    int u1;
    Foo u2; 
} Bar;

int main()
{
    {
        int a;
        int b = a; // (1)
    }
    {
        Foo a;
        Foo b = a; // (2)
    }
    {   
        Bar a;
        a.u1 = 0;
        Bar b = a; // (3)
    }
}

Ссылаясь на комментарии вmain:

(1) не определено, так какa неинициализирован. Это много я знаю.

Но как насчет (2)? Члены структурыs1 а такжеs2 неинициализированы.

Кроме того, как насчет (3)? Память u2.s2 неинициализирована, поэтому чтение ее - неопределенное поведение, нет?

Ответы на вопрос(2)

Ваш ответ на вопрос