【发布时间】:2011-07-07 15:13:53
【问题描述】:
所以我遇到了一个奇怪的问题。我有一个指向结构的指针,我将它传递给一个函数。一旦进入该函数,我感兴趣的变量之一似乎是 0,但在将结构传递给函数之前,我检查以确保特定变量不为 0。奇怪的是,这不会每次都发生,只是偶尔。有没有人见过这样的事情发生过?
源代码:
if( expand->num == 0)
return status;
status = decode( expand );
...
Status_type decode ( expand_type * expand )
{
if(expand->cur_num >= expand->num) // Here is where my error occurs
// 'num' is 0.
{
// Do stuff
}
}
【问题讨论】:
-
把出现问题的源代码贴出来,不然我们很难帮忙
-
提高编译器的警告级别并注意警告
-
expand指向的结构是静态分配的还是动态分配的?如果是后者,你检查malloc调用是否成功? -
您是重新输入此代码,还是复制粘贴?如果你重新输入,if 中有
==,还是=?
标签: c parameter-passing