2010-11-10 63 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