c - 静态结构初始化 C

标签 c struct initialization

我已经在 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/

相关文章:

swift - 为什么不在 Swift 中使用基于结构的单例

iphone - NSObject 默认构造函数

r - 如何原型(prototype)(启动)从其他插槽派生的 S4 插槽?

c - 如何初始化大小由argc和argv决定的二维数组?

C 中使用指针的转换

c - 如何在c中创建一棵n叉树

c++ - 为什么 C++11 不支持 C99 指定的初始化列表?

c 从 url 和 favicon.ico 读取身份验证

c - 如何使用 C 应用程序从 WMI 获取数据?

ios - Swift - 来自结构数组的数据未显示在 TableView 中