結構體陣列作為函式引數
阿新 • • 發佈:2018-12-11
把結構體陣列名作為函式的一個引數,然後在這個函式的函式裡面繼續作為引數,把一個值賦給這個結構體陣列的一個變數,我再賦值的地方是有值的,在函式裡面也是有值的,但是出了這個函式回到主函式時,這個結構體陣列的變數的值就為空了。為什麼呢?因為我在使用這個函式是這樣的,
iReturn = ParseAllEitSection(&stTransportParameter,pfTsFile,iTsPosition,astEitPfInfo,astEitSeInfo);
但是我定義的時候是這樣的。
int ParseAllEitSection(TS_TRANSPORT_PARAMETER *pstTransportParameter,FILE *pfTsFile,int iTsPosition,unsigned int uiService_id,
使用的編譯器:
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
這個標紅的引數是我不需要的,忘記去掉了,然後就引發了這個問題,而且我使用第5個引數(和第4個型別一致)去和第4個型別進行相同的賦值操作時會引發“段錯誤”,去掉多餘的引數就所以的問題都解決了。