我对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'
答案 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
已在c++11
答案 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];
}