我有一个函数,它需要一个表示缓冲区的uint8 *和一个表示缓冲区长度的int。我该如何将std :: string转换为表示字符串的uint8 *?我已经尝试使用c_str()将其转换为char *但我仍然无法转换为uint8 *。
功能签名看起来像。
InputBuffer(const UINT8* buf, int len, bool usesVarLengthStreams = true)
我正在尝试执行以下操作
string ns = "new value";
int len = 10;
UINT8 * cbuff = ns; //(UINT8 *) ns.c_str(); doesn't work
in = new InputBuffer(cbuff, len);
答案 0 :(得分:2)
string.c_str()返回一个(const char *)指针,而UINT8是:
typedef unsigned char UINT8;
所以代码应该是:
const UINT8 * cbuff = static_cast<const UINT8 *>(ns.c_str());