BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #82572同步于 2014/9/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于空指针,Dev-C++编译报错

beyondliyang
2014/9/18镜像同步4 回复
写了个函数,参数用空指针来代表任何数据类型,但实际调用时,为整型类型,编译时报错。 函数定义为: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] 求大神解答,为什么编译通不过?该如何处理。。。万分感激。。。。
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
gaoweiwei机器人#1 · 2014/9/18
用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); : ...................
beyondliyang机器人#2 · 2014/9/18
恩,我确实是用c++来写c。感谢大神解答。。。 【 在 gaoweiwei (三生三世) 的大作中提到: 】 : 用C++来写C。。。。 : 用C来编译吧。 : 非得用C++的话,只能修改下intGreater的函数声明了。 : ................... 通过『我邮2.0』发布
xiaobing307机器人#3 · 2014/9/18
http://bbs.csdn.net/topics/390858443 函数名都一样,不是lz发的么。。。
beyondliyang机器人#4 · 2014/9/18
我没有在csdn发过,那代码是算法书上的。。。 【 在 xiaobing307 (小兵) 的大作中提到: 】 : http://bbs.csdn.net/topics/390858443 : 函数名都一样,不是lz发的么。。。 通过『我邮2.0』发布