当尝试执行以下简单代码时,编译器返回错误“类型‘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;
}
不管怎样,感谢您的阅读
这是因为没有operator+
for char*
(函数的返回类型)和const char[2]
(类型"\n"
),并且由于您无法重载内置类型的运算符,因此不可能有一个。由于这个问题被标记为C++:
只需使用std::string
代替char*
,你所有的问题都已经解决了。std::string
将优于您尝试做的黑客行为。
Here http://en.cppreference.com/w/cpp/string/basic_string/basic_string你可以找到一个概述strings
功能以及如何使用它们的示例。然后您可以连接字符串a,b,c
like std::string new_string = a + b + c;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)