我需要将const void *(指向不带'/ 0'的c字符串)转换为std::string。

我有功能“功能”:

void function(const void* ptr, size_t size);

有一个电话:
...
std::string x("abcd");
function(x.data(), x.size());
...

如何在“功能”中将第一个参数更改为std::string?

(我知道它看起来很奇怪。我写了一个简单的示例。我想问一下转换。)

最佳答案

类型转换void*并将两个值都传递给std::string构造函数:

void function(const void* ptr, size_t size)
{
    std::string s(static_cast<const char*>(ptr), size);
    ...
}

关于c++ - 将void *(不带\0的char *)转换为std::string,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26005670/

10-11 23:15
查看更多