C リファレンスによると、標準ライブラリで提供される qsort 関数の形式は次のとおりです。
void
qsort ( void * base, size_t num, size_t size, int ( * compar ) ( const void *, const void * ) );
私の質問は、比較関数がフォームに引数を持たなければならない理由と、const void *
それが何を意味するかですconst void *
別の質問は、関数が形式の引数を取る場合、const void *
このポインターが指す値を変更できるかということです。
例:
static int double_a_number(const void * val){
*(int *)val = *(int *)val * 2;
return 0;
}
これは本当に変数 val を 2 倍にしますか?
手伝ってくれてありがとう!