我正在尝试为 qsort 编写一个比较函数,并且在取消引用双指针时遇到了麻烦。
我定义了一个结构
typedef struct {
float x;
float y;
} point;
我做了一个指向指针的数组:
point* ptarr[2]={pt1,pt3} //pt1 and pt3 have type point*
我的比较函数定义如下:
int compare(const void * a, const void * b){
return *(point**)a->x-*(point**)b->x; //This is wrong
}
由于 a 和 b 是指向数组中的值的指针,因此在我的情况下,它们是指向指向结构点的指针的指针。因此,我将它们转换为双指针(point**),然后取消引用它一次,并尝试访问 struct 中的值。编译器给了我一个“在不是结构或联合的东西中请求成员'x'”错误
我真的很困惑。有人可以帮我吗?谢谢