C - 写入一组结构 - 不可修改的左值

时间:2017-11-11 14:25:29

标签: c

我有一个由:

定义的结构
typedef struct
{
    char name[CANDY_NAME_LEN];
    bool vegan;
} candy;

我定义了这些结构的大小为10的数组:

const candy candy_db[NUM_OF_CANDIES];

并尝试填充数组:

strcpy_s(candy_db[0].name, sizeof(candy_db[0].name), "Apple");
candy_db[0].vegan = true;

但将true设置为数组中第一个元素(或任何元素)的bool字段会给出错误: 表达式必须是可修改的左值。

问题是什么?

感谢

1 个答案:

答案 0 :(得分:1)

const candy candy_db[NUM_OF_CANDIES];

您已将数组定义为const,因此无法修改其元素。