阵列内结构的数组:初始化考虑下面的代码结构
struct BufferPair
{
ByteBuffer _a;
ByteBuffer _b;
bool _c;
};
struct TestData
{
MyClass _myClass;
BufferPair _data[];
};
我试图初始化TESTDATA数组,其中我也初始化BufferPair的数组。 TestData的每个实例都有一个不同大小的BufferPair数组。简单的例子:
const TestData g_Data[] = { MyClass(), { { bufOne, bufTwo, someBool }, { bufThree, bufFour, anotherBool } } };
在尝试,我得到了以下的gcc错误:
error: too many initializers for 'BufferPair [0]'.
如何我会解决这个问题?谢谢。
好奇的更多信息。哪个扩展允许这个? – MarkP 2012-04-20 13:51:35
@MarkP:搜索'gcc数组成员大小'我发现[this](http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html),它是C的扩展,也可能可用在C++中...但无论如何,在C++中,你应该避免使用它,因为它不是标准的。 – 2012-04-20 13:58:21