【问题标题】:Initialization of an array in a structure初始化结构中的数组
【发布时间】:2015-09-07 07:06:26
【问题描述】:

我已经声明了 2 个结构:

typedef struct
{
  int a;
  int b;
}ma_Struct;

typedef struct
{
  int x;
  ma_Struct tab[2];
}maStruct_2;

目标是初始化 maStruct_2 的一个实例,所以我所做的是:

int main()
{
 ma_Struct elm1={0,1};
 ma_Struct elm2={1,2};

 ma_Struct tab_Elm[2]={elm1,elm2};
 maStruct_2 maStruct_2_Instance={1,tab_Elm};

return 0;
}

但是我收到了关于初始化程序缺少大括号的警告,我尝试了这种语法

maStruct_2 maStruct_2_Instance={1,{tab_Elm}};

但会出现相同的警告。 你能帮帮我吗

【问题讨论】:

    标签: c arrays struct


    【解决方案1】:

    在 C 中,您不能使用另一个数组名称作为初始化程序来初始化数组。

    所以错误与结构本身无关,也与范围或常量表达式无关。

    像这样修复你的代码:

    maStruct_2 maStruct_2_Instance = {1, {elm1, elm2}};
    

    【讨论】:

      猜你喜欢
      • 2013-08-07
      • 2012-05-02
      • 2015-07-29
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      相关资源
      最近更新 更多