2010-11-10 78 views
0

我对引用结构成员的错误感到困惑。结构double C中的引用错误

我有结构这样,

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; 
} 

错误当我得到错误:表达必须有指针类型

我不知道如何访问结构指针内的指针数组或从结构指针访问简单的数据(一)?

另一个问题是: 如果我尝试访问 的Int32温度= ptr-> JOBINFO [0] .pInAddr [0]; 它给我消息

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

+2

并请学会格式化你的代码发布 – 2010-11-10 11:54:47

+0

我真诚的道歉时,我是新来的论坛。你如何接受?我没有看到任何链接 – user437777 2010-11-10 12:00:18

+0

接受答案,只需点击答案选项卡旁边的V图像,您也可以上下或投票评论所有其他答案。每个问题只能接受一个答案。堆栈溢出(SO)会提醒你,如果你不接受任何答案,但这需要一些时间。 还有很多很酷的事情,很多规则,代表,徽章,赏金和大量的信息。只需浏览屏幕标签的顶部,找到它的全部:) 欢迎来到SO btw。 – Proclyon 2010-11-10 12:03:39

回答

2

JOBINFO是JobInfo_t的阵列,而不是指针数组。

试一下:

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

嗨尼古拉斯,我已经更新了我的问题。我将结构指针传递给该函数。应用您的更改后,ptr-> JobInfo [0] .a = 0现在工作,但我仍然得到相同的错误为ptr-> JobInfo [0] .pInAddr [0] = 0 – user437777 2010-11-10 11:56:35

+0

我现在不是你想要做的真。将pInAddr [0]设置为空? – 2010-11-10 12:11:05

+0

嗨,Nicolas,我只想初始化指向某些地址的指针数组。指针数组意味着要保存两个地址。我正在尝试初始化它们。 – user437777 2010-11-10 13:21:03