[error] invalid conversion from 'void*' to 'TreeNode'
时间: 2024-01-01 09:05:07 浏览: 127
这个错误通常表示您正在尝试将一个 void* 类型的指针转换为 TreeNode 类型的对象。这是不允许的,因为指针和对象是不同的类型。您需要使用强制类型转换将 void* 指针转换为正确的类型,例如:
```
TreeNode* node = static_cast<TreeNode*>(voidPtr);
```
其中 voidPtr 是您要转换的 void* 指针。请注意,这种类型转换可能会存在风险,因此请确保您已经理解了代码中的所有细节,并且已经进行了适当的测试。
相关问题
[Error] invalid conversion from void* to char** [-fpermissive]
这个错误通常是因为你在进行指针类型转换时,将一个void指针转换成char类型指针的时候出现的。由于void指针可以指向任何类型的内存地址,而char类型指针只能指向字符类型的内存地址,所以这样的转换是不安全的。
要解决这个问题,你可以尝试使用正确的类型进行指针转换,或者使用C++中的reinterpret_cast来进行类型转换。另外,你也可以检查一下你的代码,看看是否存在其他类型转换错误。
[Error] invalid conversion from 'void*' to 'void**' [-fpermissive]
这个错误信息来自于C++编程,"invalid conversion from 'void*' to 'void**'" 是说你试图将一个指向 void 的指针 (void*) 转换为指向 void 指针数组的指针 (void**)。在C++中,`void*` 和 `void**` 是两个不同的类型,前者是一般指向任意类型的指针,而后者是一个指针到指针的类型,用于存储 `void*` 类型的地址。
当你尝试这样做时,可能是遇到了需要动态内存分配并返回指向该内存的指针的情况,但是没有正确地转换类型。例如,在C++中,使用 `new` 运算符创建一个数组并且返回其指针时,你应该得到 `void**` 而不是 `void*`。
修复这个问题通常需要明确指定转换,如:
```cpp
void* ptr = ...; // 假设已经有一个void*类型的指针
void** array = &ptr; // 正确转换为指向void*指针的指针
```
或者如果你确实需要创建一个新的动态内存数组,应使用 `new[]` 并获取正确的指针类型:
```cpp
void** array = new void*[size]; // 创建一个void*指针数组
array[index] = new void[...]; // 分配单个元素的空间
```
阅读全文