访问结构数组中结构的成员,该结构是不同结构数组的成员
Accessing a member of a structure in an array of structures which is a member of an array of different structures
我有一个名为 Object 的结构定义为:
struct Object
{
char name[20];
char description[50];
};
我还有另一个名为 Room 的结构,定义为:
struct Room
{
int number;
char description[50];
struct Object objects[10];
};
然后我初始化一个 Room 数组并尝试更改房间中对象的名称:
void main()
{
struct Room rooms[1][1];
rooms[0][0].objects[0].name = "Cabinet";
}
我遇到的问题是 visual studio 给我这些错误:
rooms[0][0].objects[0].name = "cabinet";
Error1:
expression must be a modifiable lvalue
Error2:
'=': left operand must be l-value
我正在使用 visual studio 2015 社区版的 C++ 编译器编译和 运行 C 代码。
我不确定我尝试做的事情在 C 中是否可行,我的想法是我有 4 个房间,每个房间有 11 个对象,每个对象都可以有一个名称和一个描述。
粘贴bin到完整代码http://pastebin.com/jQJekLk9
您不能对字符串使用简单赋值。您需要使用 strcpy
.
strcpy(rooms[0][0].objects[0].name, "Cabinet");
我有一个名为 Object 的结构定义为:
struct Object
{
char name[20];
char description[50];
};
我还有另一个名为 Room 的结构,定义为:
struct Room
{
int number;
char description[50];
struct Object objects[10];
};
然后我初始化一个 Room 数组并尝试更改房间中对象的名称:
void main()
{
struct Room rooms[1][1];
rooms[0][0].objects[0].name = "Cabinet";
}
我遇到的问题是 visual studio 给我这些错误:
rooms[0][0].objects[0].name = "cabinet";
Error1:
expression must be a modifiable lvalue
Error2:
'=': left operand must be l-value
我正在使用 visual studio 2015 社区版的 C++ 编译器编译和 运行 C 代码。
我不确定我尝试做的事情在 C 中是否可行,我的想法是我有 4 个房间,每个房间有 11 个对象,每个对象都可以有一个名称和一个描述。
粘贴bin到完整代码http://pastebin.com/jQJekLk9
您不能对字符串使用简单赋值。您需要使用 strcpy
.
strcpy(rooms[0][0].objects[0].name, "Cabinet");