【发布时间】:2019-01-16 07:58:32
【问题描述】:
我正在尝试定义一个结构的实例,并且在设置这个变量时遇到了特别的麻烦。它是一个 char 数组。
这是我的头文件中的结构...
struct widget_t {
char *name;
uint8_t numberOfNicknames;
char *nicknames[];
};
这是我尝试设置 widget_t 结构的实例...
widget_t SomeWidget;
void setUpFunction () {
SomeWidget.name = (char *)"Lawn Mower";
SomeWidget.numberOfNicknames = 2;
SomeWidget.nicknames = {
"Choppie McGrasschopper",
"Really Noisy"
};
}
所以,当我尝试将昵称放入 SomeWidget.nicknames 时,就会发生错误。我不确定我是否需要做一些时髦的事情,就像我用name 作为指针做的那样......?
棘手的一点是nicknames 的数量是可变的。所以每个实例都需要设置不同数量的实例。
【问题讨论】:
-
尽管 C++ 没有灵活的数组成员,但将其作为扩展提供的编译器几乎都遵循 C 语义。这意味着,尽管标签不匹配,但这个 Q&A stackoverflow.com/q/8687671 几乎是重复的。
标签: c++ arduino flexible-array-member