【发布时间】:2014-03-22 15:15:54
【问题描述】:
我在初始化作为结构数组的一部分的数组时遇到问题。 结构的类型是
typedef stuct {
unsigned char myarray[];
bool flag;
}myStructType;
我已经创建了一个这种结构类型的数组并想要初始化它
myStructType myStruct[2] = {
{
{5,6,7},
false
},
{
{1,2},
true
}
};
myStruct 是一个配置结构,我的代码将循环遍历结构的所有元素,根据初始值执行一些操作。
我在 Linux 嵌入式平台使用 arm-v5te-linux-gnueabi-g++ 编译器。
问题是当我编译代码时,我得到以下错误
错误:'unsigned char [0]' 的初始化程序太多
有什么解决办法吗? 谢谢
【问题讨论】:
-
什么编译器和平台?这样的成员是非标准的。
-
您不需要 C++ 中的
typedef struct { } name技巧,您只需使用struct name { }。您应该选择一种语言或另一种。 -
如果您使用 C++ 编程,并且想要一个动态大小的数组,请使用
std::vector。 -
结构的目的是保存配置。我会在需要时向结构中添加更多事件。该设计将用于嵌入式解决方案。
-
@user2234576 好奇你为什么不接受这个答案;如果有更多信息使答案无效,它将帮助其他读者知道它是什么。
标签: c++ arrays initialization