将vector<unsigned char>转换为uint8_t*

3
我有一个需要输入uint8_t*(无符号字符)的函数。然而,我的字符串保存为vector<unsigned char>。如何将其转换为uint8_t*以便我的函数能够接受?谢谢。
1个回答

10

在大多数情况下,unsigned charuint8_t 是相同的。如果有 c++11 可用,你可以使用它来符合要求。

static_assert(std::is_same<unsigned char, uint8_t>::value, "uint8_t is not unsigned char");

那么您可以直接使用data来获取您想要的内容。

vector<unsigned char> vec = // your vector
uint8_t *data = vec.data();

2
请注意,一些仍然流行的旧编译器不支持 std::vector::data()。在这种情况下,只要向量不为空,&vec[0] 就可以解决问题。 - rodrigo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接