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

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

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

struct table_elt map[] =
{
    {123,"elementt1"},
    {234,"elt2"},
    {345,"elt3"}
};

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

最佳答案
你可能想要:

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

struct table_elt map[] =
{
    {123,"elementt1"},
    {234,"elt2"},
    {345,"elt3"}
};

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

转载注明原文:带有字符串的C结构数组 – 操作/访问 - 代码日志