编译器返回错误"类型' char *'的无效操作数和' const char [2]'到二进制'运算符+'"当试图做这个简单的代码时:
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;
}
非常感谢您阅读
答案 0 :(得分:2)
这是因为operator+
(您的函数的返回类型)和char*
(const char[2]
的类型)没有"\n"
,因为您不能内置类型的重载运算符,不可能有一个。由于这个问题被标记为C ++:
只需使用std::string
代替char*
,您的所有问题都已解决。 std::string
优于您尝试的黑客。
Here您可以找到有关strings
功能的概述以及如何使用它们的示例。然后,您可以连接a,b,c
std::string new_string = a + b + c;