出错 solution.c: In function ‘removeNthFromEnd’ Line 21: Char 22: error: invalid operands to binary == (have ‘LNode’ {aka ‘struct LNode’} and ‘LNode’ {aka ‘struct LNode’}) [solution.c] if((*myhead) == (*tmp)) ~~~~~~~~~ ^~ ~~~~~~
时间: 2023-08-13 17:08:28 浏览: 172
这个错误是由于在比较两个结构体类型 `LNode` 的实例时使用了 `==` 运算符,而 C 语言中不能直接比较结构体类型的实例。
要解决这个错误,你可以考虑使用适当的比较操作来比较结构体类型的实例。你可以根据结构体内的具体成员变量来进行比较,例如比较结构体内的某个整型变量的值。
另外,如果你想判断两个结构体是否相等,可以自定义一个函数来逐个比较结构体内的成员变量,并返回相等或不相等的结果。
希望这能帮助到你!如果你还有其他问题,请随时提问。
相关问题
widget.cpp:36:72: error: invalid operands to binary expression ('const char [2]' and 'const char *')
这个错误提示意味着您在widget.cpp文件的第36行第72列使用了两个不兼容的数据类型进行二进制操作。其中一个数据类型是常量字符串(const char [2]),另一个是常量指针(const char *)。
请检查代码并确保您在二进制操作之前正确地声明和初始化了变量。如果您需要将字符串转换为指针,请使用c_str()函数。如果您需要将指针转换为字符串,请使用to_string()函数。
C:\Users\19203\Desktop\untitled\basiccomputer\widget.cpp:139: error: Invalid operands to binary expression ('QString' and 'char')
这个错误信息表明在C++的Qt库中,试图对QString(一个用于处理文本的对象)与char类型进行二元操作,这是不合法的。在Qt中,`str.arg()`是一个方法,它接受格式化参数并替换字符串中的占位符,但不能直接与字符做算术运算。
引用[2]给出的一个例子说明了如何正确地使用`.arg()`方法:
```cpp
QString str;
str = "%1 %2"; // 定义了一个包含两个占位符的字符串
str.arg("%1f", "Hello"); // 第一个参数是一个格式化字符串,第二个参数是要插入的值,返回"%1f Hello"
// 如果你想将两个不同的占位符分开设置,应该这样写:
str.arg("%1f").arg("Hello"); // 返回"Hellof %2"
```
在这个例子中,`%1f`会被替换为"Hello",而不是尝试将其转换为字符进行计算。
所以,当你遇到`Invalid operands to binary expression`错误时,可能是你试图将`QString`和`char`直接相加、比较或执行其他不允许的操作。要修复这个问题,你需要确保正确地使用`.arg()`或其他适当的Qt字符串处理函数来处理字符或者其他类型的值。
阅读全文