带有字符串的C结构数组 - 操作/访问

jet*_*tru 5 c

我有一个看起来像这样的数组:

struct table_elt
{
    int id;
    char name[];
}

struct table_elt map[] =
{
    {123,"elementt1"},
    {234,"elt2"},
    {345,"elt3"}
};
Run Code Online (Sandbox Code Playgroud)

我试图通过map [1] .name等访问这些元素.但是,它似乎无法正确获取元素,并且我得到随机垃圾.我认为这是因为编译器不知道元素会因变化而在哪里上升.解决这个问题的最佳方法是什么,同时仍保持灵活性和简单性?

ice*_*ime 8

你可能想要:

struct table_elt
{
    int id;
    const char *name;
}

struct table_elt map[] =
{
    {123,"elementt1"},
    {234,"elt2"},
    {345,"elt3"}
};
Run Code Online (Sandbox Code Playgroud)

另外,table_elt如果仅在此上下文中使用,则甚至不需要名称.