我对引用结构成员的错误感到困惑。
我有这样的结构,
typedef struct
{
Int32 *pInAddr[2];
Int32 a;
}JobInfo_t;
typedef struct
{
ULUnitJobInfo_t JobInfo[MAX_JOBS_PER_CORE];
}DispatchInfo_t;
DispatchInfo_t *ptr,temp;
ptr=&temp;
Fun(ptr) //Fun is some function
我将它传递给函数 Fun.c as
Fun ( *ptr)
{
初始化时出错
ptr->JobInfo[0]->pInAddr[0]=0;
ptr->JobInfo[0]->a=0;
}
错误:表达式必须具有指针类型
我不知道如何在结构指针中访问指针数组或从结构指针访问简单数据(a)?
另一个问题: 如果我尝试访问 Int32 temp = ptr-> JobInfo [0] .pInAddr [0]; 它给了我消息
“表达式必须具有可修改的l值”
答案 0 :(得分:2)
JobInfo是一个JobInfo_t数组,而不是一个指针数组。
试试:
ptr->JobInfo[0].pInAddr[0]=0; ptr->JobInfo[0].a=0