如何创建字节数组数组?

时间:2013-07-13 00:15:16

标签: c++ arrays

我对c ++很陌生,我的问题可能有一个非常简单的解决方案,但我自己无法弄明白。

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

这是我尝试的方式:

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'

3 个答案:

答案 0 :(得分:5)

原始数组有点烦人。请改用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已在

中引入

答案 1 :(得分:3)

你可以这样做:

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}
};

答案 2 :(得分:1)

你必须做一个for循环,将2个数组复制到第三个,

for (int i = 0; i < 6; i++)
{
   c[0][i] = a[i];
   c[1][i] = b[i];
}