У меня был следующий код:
#include <iostream>
struct T
{
int a, b, c;
};
int main()
{
T t = {0};
std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}
0,0,0
После многих лет работы этого кода в критической производственной среде, выполняющей жизненно важную функцию, требования проекта изменились, и мне нужен был результат 1,1,1
.
Итак, я изменил {0}
на {1}
:
#include <iostream>
struct T
{
int a, b, c;
};
int main()
{
T t = {1};
std::cout << t.a << ',' << t.b << ',' << t.c << '\n';
}
1,0,0
Я ожидал 1,1,1
вместо этого.
Почему мои члены struct
не все правильно инициализируются?