小杨定义了一个结构体 Hero 来表示游戏角色,下面哪种初始化方式会由于语法错误导致编译失败?( )。
Hero
struct Hero { string name; int hp; };
Hero h = {"Arthur", 100};
Hero h; h.name = "Arthur"; h.hp = 100;
Hero h = new Hero{"Arthur", 100};
Hero *p = new Hero{"Arthur", 100};