所以,我正在处理一个代码库,我们试图将几个代码库合并成一个整齐的堆栈。我遇到了麻烦的字节数组,我们使用。我们的东西是基于通过字节数组进行通信,所以我们的每个应用程序都存储它需要发送的消息,如下所示:
BYTE arr[] = {0x00, 0x01, 0x02};
现在,我把所有的数组组合成数组的数组来把它们组合在一起,像这样:
BYTE groupOneArrs[][15] =
{
{0x01, 0x02, 0x03},
};
BYTE groupTwoArrs[][15] =
{
{0xFF, 0xA9, 0xAA},
};
等。但是,我遇到了一些问题,因为必须保留单个消息的大小,因为为了使消息被认为是有效的,它们的长度必须与我们定义的长度相同。我通过定义一个包含每个元素实际长度的int数组来解决这个问题,但它很脏。是否有一种更简单的方法来存储这些二维数组,它将保留每个单独数组的长度?
编辑:所以它听起来像我的SOL与VS 2008和变长2D数组在头文件。有没有办法用结构体来解决这个问题?就像
struct Message{
byte message[20];
int size;
}
然后初始化为…
Message messages[] = {
{{0x01, 0x02, 0x03}, 3},
};
嗯,我应该说,我试过这样的东西,它爆炸了。但不管怎样,差不多就是这样。我只是不想为了保持数组的大小而给每个数组取变量名,那样看起来很傻。
不制作2D数组,而是使用邻接表。vector
应该是最好的。它们在形成邻接表时很方便。