为什么if
在 Cygwin 中编译时该语句会导致分段错误?不过,通过 GCC 在 Linux 中编译是可行的。
经过一番研究,我发现这可能是由于struct int
变量默认未初始化为 0 的事实?
但是,C 不是将所有全局变量和静态变量都初始化为 0 吗?这struct test
是一个全局结构,为什么不初始化为 0 ?
int x;
int count = 20;
struct test {
int ID;
};
typedef struct test GG;
GG *ptr[200];
int main(int argc, char const *argv[])
{
for(x = 0; x<count; x++) {
if(!(*ptr[x]).ID){
printf("true\n");
}
}
return 0;
}