c ++类型'char *'和'const char [2]'到二进制'operator +'的无效操作数

时间:2014-08-07 11:55:50

标签: c++ visual-studio-2010 char const

编译器返回错误"类型' 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;
}

非常感谢您阅读

1 个答案:

答案 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;