返回信息流写了个函数,参数用空指针来代表任何数据类型,但实际调用时,为整型类型,编译时报错。
函数定义为:void insertionsort(void *a,int n,int size,int (*comp)(void *,void *));
调用第四个函数原型为:int intGreater(int *x,int *y);
按如下方式调用时,insertionsort(a,10,sizeof(int),intGreater),编译器报错,说第四个参数有问题,无法类型转换
[Error] invalid conversion from 'int (*)(const int*, const int*)' to 'int (*)(void*, void*)' [-fpermissive]
[Error] initializing argument 4 of 'void insertionsort(void*, int, int, int (*)(void*, void*))' [-fpermissive]
求大神解答,为什么编译通不过?该如何处理。。。万分感激。。。。
这是一条镜像帖。来源:北邮人论坛 / cpp / #82572同步于 2014/9/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于空指针,Dev-C++编译报错
beyondliyang
2014/9/18镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
用C++来写C。。。。
用C来编译吧。
非得用C++的话,只能修改下intGreater的函数声明了,或者强制类型转换。
C++有完备的模板功能,为何还要用void *这种东西
template <typename T>
void insertionsort(T *a,int n,int size,int (*comp)(T *,T *));
int intGreater(int *x,int *y);
int *arr = new arr[n];
insertionsort(arr, n, n, intGreater);
【 在 beyondliyang 的大作中提到: 】
: 写了个函数,参数用空指针来代表任何数据类型,但实际调用时,为整型类型,编译时报错。
: 函数定义为:void insertionsort(void *a,int n,int size,int (*comp)(void *,void *));
: 调用第四个函数原型为:int intGreater(int *x,int *y);
: ...................
恩,我确实是用c++来写c。感谢大神解答。。。
【 在 gaoweiwei (三生三世) 的大作中提到: 】
: 用C++来写C。。。。
: 用C来编译吧。
: 非得用C++的话,只能修改下intGreater的函数声明了。
: ...................
通过『我邮2.0』发布
我没有在csdn发过,那代码是算法书上的。。。
【 在 xiaobing307 (小兵) 的大作中提到: 】
: http://bbs.csdn.net/topics/390858443
: 函数名都一样,不是lz发的么。。。
通过『我邮2.0』发布