在尝试执行此简单代码时,编译器向我返回错误“'char*' 和'const char [2]' 类型的无效操作数到二进制'operator+'”:
BodyText[client] = PS3::ReadString(0x0178646c) + "\n" ;
这里是我的 ReadString() 函数:
char returnRead[100];
char* ReadString(int address)
{
memset(&returnRead[0], 0, sizeof(returnRead));
int strlength = 100;
char* StrBytes = ReadBytes(address, strlength);
for (int i = 0; i < strlength; i++)
{
if (StrBytes[i] != 0x00)
returnRead[i] = StrBytes[i];
else
break;
}
return returnRead;
}
感谢阅读
最佳答案
这是因为char*
(函数的返回类型)和const char[2]
( "\n"
的类型),并且由于您不能为内置类型重载运算符,因此不可能有一个。由于这个问题被标记为 C++:
只需使用 std::string
而不是 char*
,您所有的问题都已解决。 std::string
将优于您尝试做的 hack。
Here您可以找到有关 strings
功能的概述以及如何使用它们的示例。然后,您可以连接字符串 a,b,c
,例如 std::string new_string = a + b + c;
关于c++ 类型 'char*' 和 'const char [2]' 到二进制 'operator+' 的无效操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25181874/