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

标签 c++ visual-studio-2010 char constants

在尝试执行此简单代码时,编译器向我返回错误“'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/

相关文章:

c++ - 优化的 C++ 编译器如何重用函数的栈槽?

c++ - TinyXML 获得值(value)

c++ - C 和 C++ 中 char 的区别?

c++ - 练习复制构造函数和运算符重载

c++ - 顶点着色器中的统一采样器2D

c# - 带有 Log4Net 的控制台应用程序在 Debug 模式下编译,但在 Release 模式下不编译

c++ - 使用 qt 模板时未解析的外部?

c++ - Visual Studio 2010 - 在不同的构建配置之间保留项目属性?

c++ - 如何将整数转换为其等效的 ascii

将 char * 转换为 char[]