我已经在stackoverflow上读了一些答案,但我不知道为什么它还没有工作:
typedef struct gnl_struct {
char *data;
int where;
int status;
} t_gnl;
void display_elem(t_gnl tab, int nbr)
{
printf("tab[%d]\n", nbr);
printf("tab.where == %d\n", tab.where);
printf("tab.status == %d\n", tab.status);
return ;
}
int main()
{
static t_gnl tab[1000] = {{ "toto", 0, 2 }} ;
display_elem(tab[3], 3);
return (0);
}
结果是:
tab[3]
tab.where == 0
tab.status == 0
答案 0 :(得分:4)
在您的代码中,您(您自己)仅限tab[0]
,并且您已通过tab[3]
。数组[tab[1]
至tab[999]
]中的所有其他元素都自动已初始化为0
。
答案 1 :(得分:0)
您只初始化了第一个数组元素,因此剩下的将隐式填充0.现在当您尝试打印第三个元素时,它将为零。