如何填充用uint8_t填充的char数组

时间:2019-10-03 12:08:30

标签: c++ char uint8t

我想创建一个char数组并给出8位值。例如; buf[0] = 0000 0001; // 1buf[1] = 0000 0010; //2,依此类推。

当我用断点观看时,我看到的buf是 empty 。在其他帖子中,人们提供的建议如“如果要查看整数,则放置(无符号)强制转换”,它仅适用于cout。

我只想用有序递增数字填充char数组。我使用了int,但它是4个字节,相反,我认为给uint8_t可以更好地用数字填充char数组。

char *buf = new char[5];

    for (uint8_t i = 0; i < 5; i++)
    {
        buf[i] = i;
    }

[编辑] 这是我看到的,我以这种方式image

更改了循环int

1 个答案:

答案 0 :(得分:1)

您的调试器似乎假设所有char*都指向C样式的字符串。由于它遇到的第一个char的值为零,因此标记了该字符串的结尾。

大多数调试器允许您提供任意表达式来求值。如果使用强制转换提供了实际上是的信息,则可能会正确显示该阵列:

reinterpret_cast<char(*)[5]>(buf)

在任何情况下,您都不应使用new,而应使用std::vector<char>,此外,调试器应该知道如何正确显示。

相关问题