我已经在 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
最佳答案
在您的代码中,您(您自己)仅初始化了 tab[0]
并传递了 tab[3]
。数组 [tab[1]
到 tab[999]
] 中的所有其他元素 自动初始化为0
。
关于c - 静态结构初始化 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29826674/