c - 试图在 C 中的房间结构定义中声明一个结构房间数组
问题描述
在C中不可能做这样的事情吗?
struct room{
//Name of the room
char* name;
//Type fo the room
char* type;
//Array of outbound connections, max of six
struct room connections[6];
//A counter variable for how many connections the room actually has been assigned
int numOfConnections;
};
我正在创建一个相互连接的房间地图,我认为每个房间跟踪它所连接的房间的最简单方法是制作一组房间结构,然后将房间放入其中。
我收到一条错误消息,提示空间数组的元素类型不完整。错误出现在“struct room connections[6];”这一行上。
解决方案
我正在创建相互连接的房间地图
您选择的解决方案(rooms
在 的结构中具有 的数组room
)并不代表您的问题。这就像rooms
在一个room
. 正如您的错误消息所示,这也是不可能的。
您需要在一个结构中存储的是它所连接room
的另一个的链接(或地址) 。rooms
这样做是可能的,因为这是一个非常明确的问题,并且有明确的解决方案。因此,struct room
您将指针(它们是地址)存储到它所连接的房间。
struct room* connections[6];
上面的代码行意味着这connections
是一个由 6 个元素组成的数组,它们是指向struct room
.