将char指针数组的值复制到char数组

Roe*_*oel 1 c++ arrays struct

这是一个简单的游戏,我正在尝试学习如何在现有项目中应用C++(这就是我学习的最佳方式),我有使用C#和其他高级语言编程的经验,所以这对我来说还是很新的.所以我有这个比赛列表:

const char* Races[] = {
   "Demon",
   "Human",
   "Elf",
   "Orc",
   "Aliens"
};
Run Code Online (Sandbox Code Playgroud)

有一次,我收到了用户的注册,并选择了比赛.我将用户的所有信息保存到结构中,我也希望将比赛的全名保存到此结构中.

struct User_t {
   unsigned int RaceID;
   char Race[16];
};
Run Code Online (Sandbox Code Playgroud)

以下代码是我将结构中的值放入的代码:

User_t User;

User.RaceID = 3;
strcpy(User.Race, Races[User.RaceID]);
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.这是游戏的一部分,异常处理非常糟糕(它基本上会在没有任何错误可见的情况下崩溃游戏).我想弄清楚我做错了什么.有什么建议,也许是对其他事情的建议吗?

sbi*_*sbi 5

我想弄清楚我做错了什么.有什么建议,也许是对其他事情的建议吗?

您正在尝试使用C++,就好像它是C语言(这在语法上是可能的),并且您不能很好地了解C和C++.

帮自己一个忙,用真正的 C++ 做吧:

std::string Races[] = {
   "Demon",
   "Human",
   "Elf",
   "Orc",
   "Aliens"
};

struct User {
  unsigned int RaceID;
  std::string Race;

  explicit User(unsigned int rid)
  : RaceID(rid)
  , Race(Races[rid])
  {}
};

User user(3);

std::cout << user.Race << '\n';
Run Code Online (Sandbox Code Playgroud)