如何将指针发送到功能的指针
How can I send a pointer to function to function?
我知道如何将指针发送到函数,但是如何正确发送指针以函数以函数?
代码:
#include <iostream>
#include <ctime>
using namespace std;
int avg(int *A, int *B, int A_size, int B_size) {
return NULL;
}
int min(int *A, int *B, int A_size, int B_size) {
return NULL;
}
int max(int *A, int *B, int A_size, int B_size) {
return NULL;
}
int Action(int *A, int *B, int A_size, int B_size, int (*fun_ptr)) {
return NULL;
}
void main() {
srand(time(NULL));
int A_size, B_size;
int (*f) (int*, int*, int, int);
cout << "Type A size and B size: "; cin >> A_size >> B_size;
int *A = new int[A_size];
int *B = new int[B_size];
cout << "A massive: ";
for (int *i = A; i < A + A_size; i++) {
*i = rand() % 10;
cout << *i << " ";
}
cout << endl;
cout << "B massive: ";
for (int *i = B; i < B + B_size; i++) {
*i = rand() % 10;
cout << *i << " ";
}
cout << endl;
int choose;
cout << "1.max" << endl;
cout << "2.min" << endl;
cout << "3.avg" << endl;
cout << "Chose the fucntion: "; cin >> choose;
switch (choose) {
case 1: f = &max; break;
case 2: f = &min; break;
case 3: f = &avg; break;
}
Action(&A[0], &B[0], A_size, B_size, &f);
}
我想将指针发送到函数以函数Action
,但是我需要更改什么?它不起作用。f
是函数的指针。
int (*fun_ptr)
等效于 int *fun_ptr
。它声明了指向int
的指针,而不是函数。
这是用于声明功能指针的语法(特别是可以指向avg
,min
或max
的功能指针):int (*fun_ptr)(int*, int*, int, int)
。请注意您声明中缺少的参数列表。PS。当您声明f
时,您已经设法这样做。
代码中的其他错误:
main
必须返回int
。NULL
不能保证将其隐式转换为int
。&f
的类型是指向函数指针的指针,而不是指向函数的指针。
相关文章:
- 链表删除功能的单指针 // 是可能的
- 对于非常量指针类型的参数,未调用具有常量指针模板类型参数的功能
- char* 除了作为C++中的指针之外,还有其他功能吗?
- 具有小对象优化功能的智能指针
- 如何定义和设置指向模板类方法的功能指针
- 将状态传递给功能指针
- 如何使用指针向量为班级制作复制功能
- 我对C 中共享指针列表进行排序的功能未完成类型
- 如何使用结构内的功能指针调用私有函数
- 如何将自己的智能指针传递到功能
- 模板功能以检查智能指针是否为空
- 如何存储指针以功能模板,该模板将可呼叫对象作为其参数之一
- 功能指针不起作用(C )
- 将C 方法作为功能指针传递
- 字符指针功能以复制C 中的字符串
- 指针?指针功能
- 反向指针功能问题
- 无效指针功能的输出
- 更好地解释C++指针功能
- 用memcpy c 读取并写入指针功能