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

时间:2010-07-31 12:52:50

标签: c++

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

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

    string newstring = (char*)bufPtr;

    return newstring;
}

1 个答案:

答案 0 :(得分:13)

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

string MyFunction::GetString(unsigned char* inStrReference) {
   return inStrReference;
}
事实上,因为整个功能完全没必要。如果var = GetString(s);有效,那么var = s;也会保证有效,并产生相同的相同结果。

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