首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C中2级数组的理想数据类型

问C中2级数组的理想数据类型
EN

Stack Overflow用户
提问于 2012-11-02 17:20:12
回答 1查看 1.6K关注 0票数 0

现在,我需要一个更复杂的结构,而不是I found a way *作为值,我需要一个结构(名为atom_s)来静态初始化项目数组。

代码语言:javascript
复制
typdef struct atom_s {
  const char *val;
  const char *filter;
} atom_t;

struct
{
  const char *key;
  const atom_t **values;
} key_to_values[] =
{
  { .key = "foo", .values = (const atom_t *[]) { NULL } },
  { .key = "bar", .values = (const atom_t *[]) { { .val = "foo", .filter = "bar" }, NULL } },
};

问题是:我不知道如何在上面的数组声明中初始化atom_s,也不知道这是否可能。数组的第二行( key = "bar")不能编译:

代码语言:javascript
复制
warning: braces around scalar initializer  
warning: (near initialization for '(anonymous)[0]')
error: field name not in record or union initializer
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-02 17:28:10

代码语言:javascript
复制
{ 
   .key = "bar", 
   .values = (const atom_t *[]) {
       (const atom_t []) {
           { .val = "foo", .filter = "bar" }
           // how is the user going to know this array has one element?
       },
       NULL 
   }
},

values指向的数组中的每个元素都指向一个atom_t数组(最后一个元素除外,它是null)。您可能还需要一些方法来终止这些内部数组中的每一个,除非它们的长度始终相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13192427

复制
相关文章

相似问题

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