所以,我正在处理一个代码库,我们试图将几个代码库合并到一个整齐的堆栈中。我遇到了我们使用的BYTE阵列的问题。我们的东西是基于字节数组的通信,所以我们的每个应用程序都存储它需要发送的消息,如下所示:
BYTE arr[] = {0x00, 0x01, 0x02};
所以现在,我将所有数组一起粉碎成阵列数组,试图将它们组合在一起,如下所示:
BYTE groupOneArrs[][15] =
{
{0x01, 0x02, 0x03},
};
BYTE groupTwoArrs[][15] =
{
{0xFF, 0xA9, 0xAA},
};
等等。但是,我遇到了问题,因为必须保留各个消息的大小,因为为了使消息被认为是有效的,它们必须与我们定义它们的长度相同。我通过使用每个元素的实际长度定义一个int数组来解决这个问题,但它很脏。有没有更简单的方法来存储这些2D数组,这将保留每个单独数组的长度?
编辑:所以它听起来像我在VS 2008中的SOL和头文件中的可变长度2D数组。有没有办法解决这个问题,例如结构?
之类的东西struct Message{
byte message[20];
int size;
}
然后将其初始化为......
Message messages[] = {
{{0x01, 0x02, 0x03}, 3},
};
嗯,我应该说,我尝试过类似的东西,它爆炸了。但无论如何,这样的事情。我只是不想为每个数组创建变量名只是为了保留大小,这看起来很傻。
答案 0 :(得分:0)
使用邻接列表,而不是制作2D数组。 vector
应该是最好的。它们在形成邻接列表方面很方便。