将unsigned char*赋值给字符串C++

boo*_*oom 2 c++

这是我的示例代码.请让我知道为什么它在这里崩溃.

string MyFunction::GetString(unsigned char* inStrReference)
{
    unsigned char* bufPtr = inStrReference; 

    string newstring = (char*)bufPtr;

    return newstring;
}
Run Code Online (Sandbox Code Playgroud)

Kre*_*van 13

首先,代码与更简洁的代码完全相同:

string MyFunction::GetString(unsigned char* inStrReference) {
   return inStrReference;
}
Run Code Online (Sandbox Code Playgroud)

事实上,因为它是完整的功能是完全没必要的.如果var = GetString(s);有效则var = s;保证也有效并产生相同的相同结果.

至于崩溃,可能是因为inStrReference没有指向包含零终止字符串的有效内存区域.换句话说,我们需要有关如何调用此函数的更多详细信息,以告诉您问题所在.