我应该提到我正在使用Turbo C ++(是旧版本),因为我的学校要求这样做。
我有这样的结构:
struct move{
int power;
int pp;
char name[10];
};
当我尝试执行以下操作创建新变量时:
move tackle;
tackle.pp = 10;
tackle.power = 20;
tackle.name = "tackle";
我收到如下错误:
Error NONAME00.CPP 11: Lvalue required
但这有效:
move tackle = {20, 10, "tackle"}
有用。
我究竟做错了什么?
附言第11行是
tackle.name = "tackle"
,如果之前不清楚我会感到抱歉。 最佳答案
您不能分配给数组,但可以对其进行初始化。
tackle.name = "tackle";
是一项任务,而
move tackle = {20, 10, "tackle"};
是一个初始化。
要替换数组的内容,请使用
strcpy
:strcpy(tackle.name, "tackle");
或者,如果允许,请使用
string
:#include <string>
struct move{
int power;
int pp;
string name;
};