首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将结构数组初始化为结构的元素

问将结构数组初始化为结构的元素
EN

Stack Overflow用户
提问于 2015-12-27 22:45:20
回答 1查看 113关注 0票数 1

我正在尝试初始化包含数组的结构数组。看看this和this,我认为一个相当合理的尝试是:

代码语言:javascript
复制
struct Score_t{
    int * dice;
    int numDice;
    int value;
};
struct Score_t Scores[NUMSCORES] = {
    [0]={{0,0,0},3,1000},
    [1]={{1,1,1},3,200},
    [2]={{2,2,2},3,300},
    [3]={{3,3,3},3,400},
    [4]={{4,4,4},3,500},
    [5]={{5,5,5},3,600},
    [6]={{0},3,100},
    [7]={{4},3,50}
};

但是,我无法编译它。你有什么办法做这件事吗?

编辑:忘记了错误信息:(片段)

代码语言:javascript
复制
  [5]={{5,5,5},3,600},
  ^
greed.c:79:2: warning: (near initialization for ‘Scores[5].dice’) [enabled by default]
greed.c:79:2: warning: initialization makes pointer from integer without a cast [enabled by default]
greed.c:79:2: warning: (near initialization for ‘Scores[5].dice’) [enabled by default]
greed.c:79:2: warning: excess elements in scalar initializer [enabled by default]
greed.c:79:2: warning: (near initialization for ‘Scores[5].dice’) [enabled by default]
greed.c:79:2: warning: excess elements in scalar initializer [enabled by default]
greed.c:79:2: warning: (near initialization for ‘Scores[5].dice’) [enabled by default]
greed.c:80:2: warning: braces around scalar initializer [enabled by default]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-27 22:59:47

int *不能用{ }初始化(不匹配)

所以就像这样吧。

代码语言:javascript
复制
struct Score_t Scores[NUMSCORES] = {
    [0]={(int[]){0,0,0},3,1000},
    [1]={(int[]){1,1,1},3,200},
    [2]={(int[]){2,2,2},3,300},
    [3]={(int[]){3,3,3},3,400},
    [4]={(int[]){4,4,4},3,500},
    [5]={(int[]){5,5,5},3,600},
    [6]={(int[]){0},3,100}, //It doesn't know the number of elements
    [7]={(int[]){4},3,50}   //change to [7]={(int[3]){4},3,50} or [7]={(int[]){4},1,50}
};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34485654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档