uint8_t元素赋值给C++中的uint8_t数组

uint8_t element assignment to uint8_t array in C++

提问人:sayonara 提问时间:1/31/2023 最后编辑:Remy Lebeausayonara 更新时间:1/31/2023 访问量:144

问:

我正在尝试创建一个数组并尝试更改数组的第一个元素,然后将其作为字符串打印到终端。uint8_t

但是,在我分配(更改块)后,给出了一个错误。我试图在 StackOverflow 中找到答案,但找不到类似的问题。你能帮我吗?currBlockarr[0]cout

错误:bitset::_M_copy_from_ptr

#include <iostream>
#include <sstream>
#include <bitset>
    
int main()
{
    uint8_t arr[3]{0};
    uint8_t currBlock{arr[0]};
    int flag{1};
    currBlock ^= (-flag ^ arr[0]) & (1UL << 3);
    cout << "Buffer is : " << bitset<24>(arr).to_string() << endl;
    arr[0] = currBlock;
    cout << "Buffer is : " << bitset<24>(arr).to_string() << endl;
    return 0;
}

我本来以为会打印出来,但结果却出现了错误。uint8_t

C++ uint8t uint8array

评论

3赞 Mikel F 1/31/2023
您通常应该分享您收到的错误消息,因为它可以提供有关正在发生的事情的许多线索。
1赞 eerorika 1/31/2023
I got an error第一步是阅读错误消息。
1赞 Bob__ 1/31/2023
这是错误吗?
4赞 user4581301 1/31/2023
运行时错误。Bitset 需要以 null 结尾的字符串 1 和 0。你没有给它一个。甚至在阅读错误消息之前,您也应该阅读文档
0赞 user4581301 1/31/2023
没有快速简便的方法可以做到这一点,尽管我认为应该有,所以这里有一些关于如何正确完成这项工作的建议。

答: 暂无答案