2

我是 C++ 的新手,我的问题可能有一个非常简单的解决方案,但我自己无法弄清楚。

假设我有两个字节数组ab。它们中的每一个都包含六个字节。现在我想介绍一个新的数组c,它应该包含ab

这就是我尝试的方式:

byte a[] = {B11111111, B10010000, B10011000, B10010100, B10010010, B11110001};
byte b[] = {B11111111, B10000001, B10000001, B10000001, B10000001, B11111111};

byte c[2][6] = {{a},{b}};

编译器给我以下错误:

invalid conversion from 'byte' to 'byte'
4

3 回答 3

6

原始数组有点烦人。改用std::array

using std::array;
array<byte,6> a = {B11111111, B10010000, B10011000, B10010100, B10010010, B11110001};
array<byte,6> b = {B11111111, B10000001, B10000001, B10000001, B10000001, B11111111};
array<array<byte,6>,2> c = {a, b};

std::array

于 2013-07-13T00:46:12.737 回答
4

你可以这样做:

byte a[] = {B11111111, B10010000, B10011000, B10010100, B10010010, B11110001};
byte b[] = {B11111111, B10000001, B10000001, B10000001, B10000001, B11111111};

byte* c[2] = {a,b};

但是直接做一个多维数组会更干净:

byte c[2][6] = {
  {B11111111, B10010000, B10011000, B10010100, B10010010, B11110001},
  {B11111111, B10000001, B10000001, B10000001, B10000001, B11111111}
};
于 2013-07-13T00:42:15.243 回答
1

您必须执行一个 for 循环才能将 2 个数组复制到第三个数组中,

for (int i = 0; i < 6; i++)
{
   c[0][i] = a[i];
   c[1][i] = b[i];
}
于 2013-07-13T00:42:17.540 回答