私はLCTHWチュートリアルに従っており、実行するタスクがあります。これはデータ構造です:
typedef struct DArray {
int end;
int max;
size_t element_size;
size_t expand_rate;
void **contents;
} DArray;
私はtypedefを宣言しました:
typedef int (*DArray_compare) (const void *a, const void *b);
並べ替え関数を作成するときに、DArray_compareを渡します。問題は、このコンパレータの例を実行する方法がわからないことです。
私はこのようなことをしようとしました:
int compare(const void *a, const void *b)
{
int i = (int)*a;
int k = (int)*b;
printf("%d %d\n", i, k);
return i - k;
}
しかし、エラーが発生します:
error: operand of type 'void' where arithmetic or pointer type is required int i = (int)*a;
問題は、コンパレータの構造体とtypedefを変更せずに、intを比較するコンパレータを作成したいのですが、どうすればよいですか?