gpt4 book ai didi

c - 访问结构内部指针数组中的值

转载 作者:太空宇宙 更新时间:2023-11-04 02:24:48 25 4
gpt4 key购买 nike

我正在尝试访问结构内结构指针数组内的结构成员的值。所以我有一个结构房间,其中包含指向其他房间的指针数组,称为 outboundConnection[]。我不断收到错误

error: request for member ‘name’ in something not a structure or union printf("Connection %i: %s", i, x.outboundConnections[i].name);

我的结构是这样设置的:

typedef struct
{
char* name; //Name of the room
char type; //Type of room
int numOutboundConnections; //Number of rooms connected
int isSelected;; // 0 means not selected, 1 means selected
struct Room *outboundConnections[6]; //Pointers to rooms connected
} Room;
// Room constructor used for filling roomBank
Room room_init(char* name, int s, int c)
{
Room temp;
temp.name = calloc(16, sizeof(char));
strcpy(temp.name, name);
temp.isSelected = s;
temp.numOutboundConnections = c;
return temp;
}

我正在使用此函数向 outboundConnections 数组添加连接:

void ConnectRoom(Room *x, Room *y)
{
(*x).outboundConnections[(*x).numOutboundConnections] = malloc(sizeof(Room));
(*x).outboundConnections[(*x).numOutboundConnections] = y;
(*x).numOutboundConnections++;
(*y).outboundConnections[(*y).numOutboundConnections] = malloc(sizeof(Room));
(*y).outboundConnections[(*y).numOutboundConnections] = x;
(*y).numOutboundConnections++;
}

我在获取 outboundConnections 数组中的名称结构成员时遇到问题。

printf("Connection %i: %s", i, x.outboundConnections[i].name);

我试过使用 ->name 和 (*x.outboundConnections[i]).name。我想知道我是否正确地将 Rooms 分配给 outboundConnections 数组,或者我的问题是否在于我如何尝试访问成员变量。

最佳答案

outboundConnections 是一个指针数组,所以 outboundConnections[i] 是一个 Room *。此外,x 也是一个指针。您应该使用 ->(而不是 .)来访问它的成员:

x->outboundConnections[i]->name

关于c - 访问结构内部指针数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52976922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com