小编Vid*_*dya的帖子

初始化其中包含数组元素的结构数组

#include <stdio.h>

int main()
{
    typedef struct s
    {
        int a;
        int b[5];
        char c[2];
    }st;

    st vs[1];

    vs[0] = {1,{1,2,3,4,5},{'c','d'}};

    printf("%d:a\n",vs[1].a);
    printf("%d:b[0]\t %d:b[4]\n",vs[0].b[0],vs[0].b[4]);
    printf("%c:c[0]\t %c:c[1]\n",vs[0].c[0],vs[0].c[1]);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

gcc -o main *.c 
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

main.c:在函数'main'中:main.c:15:12:错误:'{'标记vs [0] = {1,{1,2,3,4,5}之前的预期表达式,{'c ", 'D'}};

但如果我有这个:

#include <stdio.h>

int main()
{
    typedef struct s
    {
        int a;
        int b[5];
        char c[2];
    }st;

    st vs[] = {
                {1,{1,2,3,4,5},{'c','d'}}
              };

    printf("%d:a\n",vs[0].a);
    printf("%d:b[0]\t %d:b[4]\n",vs[0].b[0],vs[0].b[4]);
    printf("%c:c[0]\t %c:c[1]\n",vs[0].c[0],vs[0].c[1]);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有用.这是什么逻辑.

如何使用st vs [1]方法使其工作?

c arrays pointers multidimensional-array

3
推荐指数
1
解决办法
54
查看次数

标签 统计

arrays ×1

c ×1

multidimensional-array ×1

pointers ×1