1. 程式人生 > >結構體陣列作為函式引數

結構體陣列作為函式引數

把結構體陣列名作為函式的一個引數,然後在這個函式的函式裡面繼續作為引數,把一個值賦給這個結構體陣列的一個變數,我再賦值的地方是有值的,在函式裡面也是有值的,但是出了這個函式回到主函式時,這個結構體陣列的變數的值就為空了。為什麼呢?因為我在使用這個函式是這樣的,

iReturn = ParseAllEitSection(&stTransportParameter,pfTsFile,iTsPosition,astEitPfInfo,astEitSeInfo);

但是我定義的時候是這樣的。

int ParseAllEitSection(TS_TRANSPORT_PARAMETER *pstTransportParameter,FILE *pfTsFile,int iTsPosition,unsigned int uiService_id,

PROGRAM_EIT_INFO *pstEitPfInfo,PROGRAM_EIT_INFO *pstEitSeInfo)

使用的編譯器:

gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4

這個標紅的引數是我不需要的,忘記去掉了,然後就引發了這個問題,而且我使用第5個引數(和第4個型別一致)去和第4個型別進行相同的賦值操作時會引發“段錯誤”,去掉多餘的引數就所以的問題都解決了。