将std :: string转换为uint8 *

时间:2014-05-08 20:33:52

标签: c++

我有一个函数,它需要一个表示缓冲区的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);

1 个答案:

答案 0 :(得分:2)

string.c_str()返回一个(const char *)指针,而UINT8是:

typedef unsigned char UINT8; 

所以代码应该是:

const UINT8 * cbuff = static_cast<const UINT8 *>(ns.c_str());