首页 > 解决方案 > 试图在 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];”这一行上。

标签: carraysstruct

解决方案


我正在创建相互连接的房间地图

您选择的解决方案(rooms在 的结构中具有 的数组room)并不代表您的问题。这就像rooms在一个room. 正如您的错误消息所示,这也是不可能的。

您需要在一个结构中存储的是它所连接room的另一个的链接(或地址) 。rooms这样做是可能的,因为这是一个非常明确的问题,并且有明确的解决方案。因此,struct room您将指针(它们是地址)存储到它所连接的房间。

struct room* connections[6]; 

上面的代码行意味着这connections是一个由 6 个元素组成的数组,它们是指向struct room.


推荐阅读