我遇到了一個很奇怪的問題。 我定義了一個結構並將其作爲一個const指針傳遞給一個函數。代碼就像下面那樣。當使用結構指針作爲函數參數時出現錯誤值
typedef struct a{
char str1[256];
...
int x;
}a_t;
int f(..., const a_t *a){...}
a_t a;
...
a.x = 1;
f(..., &a);
...
問題是一旦它進入f(),我會打印出變量a-> x,它總是0!?? 但是,如果我將結構成員x移動到結構的頂部(在其他成員之前),它將是1,這是正確的。
是否有任何使用結構指針作爲參數的技巧或陷阱?
[EDIT1該printf的被稱爲函數f()一號線
顯示你放什麼'F'功能,你很可能溢出'str1'成員。 – ouah 2012-08-11 09:29:31
請嘗試創建[SSCCE](http://sscce.org/),關於指向結構的指針沒有什麼特別之處。 – Mat 2012-08-11 09:29:51