我有一个名为 datain 的 bitset<112> 填充在与主函数分开的函数中。我希望将位集拆分为 14 个字节的 uint8_t 数组,并将该数组返回给主函数。我写了一个 for 循环来做到这一点。我已经阅读了返回数组的指针,这是我最好的选择。
uint8_t* getDataArray()
{
bitset<112> datain;
// code to populate datin here
i = 111;
uint8_t *byteArray = new uint8_t[14];
bitset<8> tempbitset;
for (int j = 0; j<14; j++)
{
for (int k = 7; k >= 0; k--)
{
tempbitset[k] = datain[i];
--i;
}
*byteArray[j] = tempbitset.to_ulong();
}
return byteArray;
}
int main()
{
uint8_t* datain = getDataArray();
}
但是,这会产生编译错误
error: invalid type argument of unary '*' (have 'uint8_t {aka unsigned char}')|
在线上
*byteArray[j] = tempbitset.to_ulong();
但是根据我对指针的理解, byteArray[j] 是数据的地址,而 *byteArray[j] 是数据,所以这应该可以工作???
谢谢。
编辑以消除我的编译器在解决此错误后指出的另一个错误。