我遇到了一个很奇怪的问题。 我定义了一个结构并将其作为一个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