gpt4 book ai didi

c - 定义结构 vector 并将其作为 C 中的指针传递 - 错误 : initialization from incompatible pointer type

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

我想定义一个结构 vector 。该 vector 应包含以下元素:用户和角色。

struct UserToRole_S
{
char user[SERVAL_HTTP_MAX_LEN_USER_NAME + 1];
unsigned int role;
};

typedef struct UserToRole_S UserToRole

#define ENDROLE 5

static UserToRole user_role[6] =
{
{"user5", ADMIN},
{"user4", GUEST},
{"user3", GUEST},
{"user2", GUEST},
{"user1", ADMIN},
{"andreea", ENDROLE},
};

UserToRole const *usertoroleTable[2] =
{
&user_role,
NULL
};

extern UserToRole const *usertoroleTable[];

但是我得到了错误:从不兼容的指针类型初始化

我的代码有什么问题? vector 的定义?

最佳答案

您缺少 typedef,您不能在 C 中使用结构的裸名作为类型名。

或者添加:

typedef struct UserToRole_S UserToRole_S;

或使用:

static struct UserToRole_S user_role[] = 

等等,即将裸名替换为完整的 struct UserToRole_S 类型名称。

关于c - 定义结构 vector 并将其作为 C 中的指针传递 - 错误 : initialization from incompatible pointer type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22664245/

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