我为引用结构成员而得到的错误感到困惑。

我有这样的结构,

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为

Fun ( *ptr)
{


初始化时出现错误

    ptr->JobInfo[0]->pInAddr[0]=0;
    ptr->JobInfo[0]->a=0;
}


错误:表达式必须具有指针类型

我不知道然后如何访问结构指针中的指针数组或从结构指针访问简单数据(a)?

另一个问题:
如果我尝试访问
Int32 temp = ptr-> JobInfo [0] .pInAddr [0];
它给我消息

“表达式必须具有可修改的l值”

最佳答案

JobInfo是JobInfo_t的数组,而不是指针的数组。

尝试:

ptr->JobInfo[0].pInAddr[0]=0; ptr->JobInfo[0].a=0

关于c - C中的结构双重引用错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4144147/

10-10 06:22