转换void*(char*without\0)到std :: string

pet*_*555 0 c++ stl

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

我有功能"功能":

void function(const void* ptr, size_t size);
Run Code Online (Sandbox Code Playgroud)

有一个电话:

...
std::string x("abcd");
function(x.data(), x.size());
...
Run Code Online (Sandbox Code Playgroud)

如何在'function'中将第一个参数更改为std :: string?

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

Rem*_*eau 8

键入void*并将两个值传递给std::string构造函数:

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