[Error] invalid conversion from 'void*' to 'Tree*' [-fpermissive]
时间: 2024-04-03 19:30:45 浏览: 82
这个错误通常是因为在代码中进行了指针类型的转换,但是转换的类型不匹配导致的。在 C++ 中,void* 指针可以指向任何类型的内存地址,但是在使用时需要进行强制类型转换才能访问其中存储的数据。
例如,如果你有一个 void* 类型的指针,指向一个 Tree 类型的对象,你需要将它转换为 Tree* 类型才能调用 Tree 类的成员函数。如果转换时类型不匹配,则会出现上述错误。
解决方法是检查代码中的指针类型转换,确保转换的类型正确匹配。如果不确定如何正确转换,请参考 C++ 中的类型转换规则。
相关问题
10 38 C:\Users\19746\Desktop\未命名2.cpp [Error] invalid conversion from 'void*' to 'bitree*' [-fpermissive]
这是一个编译器的错误信息,意思是你在代码中将`void`指针转换成了`bitree`指针,但是这种类型的转换是不被允许的。这是因为`void`指针可以指向任何类型的数据,而`bitree`指针只能指向`bitree`类型的数据。
要解决这个问题,你需要将`void`指针转换成正确的指针类型,比如:
```cpp
void* ptr = get_bitree_pointer();
bitree* tree = static_cast<bitree*>(ptr);
```
这里使用了`static_cast`运算符将`void`指针转换成`bitree`指针。当然,在进行这种类型的转换时,你需要确保`void`指针指向的实际上是`bitree`类型的数据。
阅读全文