Приведенный ниже код выводит мусор (или нули), если он скомпилирован с VC++ 2017 и "1122", если скомпилирован с GCC или Clang (https://rextester.com/JEV81255). Это ошибка VC++ или я что-то здесь упускаю?
#include <iostream>
struct Item {
int id;
int type;
};
int main()
{
auto items = new Item[2]
{
{ 1, 1 },
{ 2, 2 }
};
std::cout << items[0].id << items[0].type;
std::cout << items[1].id << items[1].type;
}
В то же время это работает, если элементы имеют примитивный тип (например, int
).