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は配列内の値へのポインターであるため、私の場合、それらは構造体ポイントを指すポインターへのポインターです。したがって、それらをダブルポインター(ポイント**)にキャストし、それを1回逆参照して、struct内の値にアクセスしようとしました。コンパイラーから「構造体または共用体ではないものでのメンバー'x'の要求」エラーが発生しました
私はこれについて本当に混乱しています。誰かがそれを手伝ってくれる?ありがとう