[Error] cannot convert 'linklist**' {aka 'student**'} to 'linklist*' {aka 'student*'}
时间: 2023-08-31 21:23:10 浏览: 834
### 回答1:
这个错误提示是因为你试图将一个指向指针的指针转换为指向指针的单一指针,这是不允许的。你需要使用间接引用运算符来访问指向指针的指针所指向的对象。如果你能提供更多的上下文和代码,我可以帮助你更好地解决这个问题。
### 回答2:
这个错误是由于数据类型不匹配导致的。在C++中,`linklist**`表示指向指针的指针,而`linklist*`表示指向结构体/类的指针。
当我们将`linklist**`(即指向指针的指针)赋值给`linklist*`(即指向结构体/类的指针)时,编译器会报错。这是因为它们是不同的数据类型,不能直接进行转换。
要解决这个问题,我们可以使用间接引用运算符(`*`)来解决。我们可以将`linklist**`先解引用一次,然后再将其赋值给`linklist*`。这样就可以进行转换了。
示例代码如下:
```cpp
linklist** listPtrPtr;
linklist* listPtr;
// 先解引用listPtrPtr,然后赋值给listPtr
listPtr = (*listPtrPtr);
```
在这个示例中,我们首先使用间接引用运算符(`*`)来解引用`linklist**`,得到指向`linklist*`的指针。然后,将这个指针赋值给`linklist*`类型的变量`listPtr`,就可以避免类型转换错误了。
需要注意的是,解引用操作只有在指针指向有效的内存地址时才能生效,否则可能会引发其他错误。在使用时,应该确保指针指向的内存地址是有效的。
### 回答3:
这个错误是由于函数中参数的类型不匹配导致的。
在错误信息中,'linklist**'(或者其他名字为'student**'的类型)表示一个指向指针的指针,而'linklist*'(或者其他名字为'student*'的类型)表示一个指针。
在函数中可能有一个参数的类型是'linklist**',而调用函数时传入的参数的类型是'linklist*',这是不匹配的。
为了解决这个错误,你可以检查函数定义和函数调用中参数的类型是否匹配。确保传递给函数的参数类型与函数定义中的参数类型一致。如果仍然存在问题,可能需要进一步查看代码,找到导致此错误的原因。
总之,这个错误的解决方法是确保函数中参数的类型与调用函数时传入的参数类型一致。
阅读全文