如果使用 VC++ 2017 编译,下面的代码将打印垃圾(或零),如果使用 GCC 或 Clang ( https://rextester.com/JEV81255 ) 编译,则打印“1122”。是 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
),它也可以工作。