结构体指针使用时出现dereferencing pointer to incomplete type错误

hunter2046 2009-10-31 03:54:47
struct定义如下:
typedef struct role {
char name[40];
int juniorCount;
int seniorCount;
int userCount;
int permissionCount;
int activeUser[50];
struct role_t* juniorRoles[50];
struct role_t* seniorRoles[50];
struct user_t* users[50];
struct permission_t* permissions[50];
} role_t;


在一个函数里用到,在红色的地方报错:dereferencing pointer to incomplete type
蓝色的地方有warning: assignment from incompatible pointer type :
int add_senior_role(role_t* junior, role_t* senior)
{
int i = 0;

//If the junior is already assigned as a junior role of the senior the call fails.
for(; i < senior->juniorCount; i++)
if(strcmp(junior->name, senior->juniorRoles[i]->name) == 0)
return 0;

//A role can have at most 50 junior roles.
if(senior->juniorCount < 50)
{
senior->juniorRoles[senior->juniorCount] = junior; senior->juniorCount++;
}
else
{
printf("No more junior roles can be assigned to this role.\n");
return 0;
}

//A role can have at most 50 senior roles.
if(junior->seniorCount < 50)
{
junior->seniorRoles[junior->seniorCount] = senior;
junior->seniorCount++;
}
else
{
printf("No more senior roles can be assigned to this role.\n");
return 0;
}
return 1;
}

有谁知道怎么改吗?
...全文
2022 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hunter2046 2009-11-01
  • 打赏
  • 举报
回复
谢楼上 结帖
mstlq 2009-10-31
  • 打赏
  • 举报
回复
struct role* juniorRoles[50];
struct role* seniorRoles[50];
struct user* users[50];

不知这样行否?

70,035

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧