这是我的示例代码。请让我知道为什么它会在这里崩溃。
string MyFunction::GetString(unsigned char* inStrReference)
{
unsigned char* bufPtr = inStrReference;
string newstring = (char*)bufPtr;
return newstring;
}
答案 0 :(得分:13)
首先,代码与更简洁的代码相同:
string MyFunction::GetString(unsigned char* inStrReference) {
return inStrReference;
}
事实上,因为整个功能完全没必要。如果var = GetString(s);
有效,那么var = s;
也会保证有效,并产生相同的相同结果。
至于崩溃,可能是因为inStrReference
没有指向包含零终止字符串的有效内存区域。换句话说,我们需要更多关于如何调用此函数的详细信息来告诉您问题所在。