46 35 D:\学生管理系统\学生管理,通用指针.cpp [Error] cannot convert 'void* (*)(Node*)' to 'void**' for argument '3' to 'Node* addAll(Node*, int, void**)'
时间: 2023-12-22 12:03:32 浏览: 109
C语言课程设计-C语言大作业学生管理系统源码.zip
5星 · 资源好评率100%
这个错误是因为在调用函数`addAll(Node*, int, void**)`时,第三个参数应该是一个`void**`类型的指针,但是你传递了一个`void* (*)(Node*)`类型的指针,这两种类型是不兼容的,因此编译器会报错。你需要将第三个参数改为`void**`类型的指针,或者将你传递的指针进行强制类型转换。
下面是一个示例代码,演示了如何使用`void*`类型的指针和`void**`类型的指针:
```c++
#include <iostream>
using namespace std;
void func1(void* data) {
int* p = (int*)data;
cout << "func1: " << *p << endl;
}
void func2(void** data) {
int* p = (int*)*data;
cout << "func2: " << *p << endl;
}
int main() {
int num = 10;
void* p1 = #
void** p2 = &p1;
func1(p1); // 输出:func1: 10
func2(p2); // 输出:func2: 10
return 0;
}
```
阅读全文