回答編集履歴
2
訂正
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
①比較関数(compare)の実際の呼び出しはqsort内部で行われます。このとき、引数として比較する配列の要素が渡されます。
|
2
2
|
|
3
|
-
②事前にどんな型の配列が渡されるかわからないため、qsortの内部では配列の要素はvoid *となっています。配列を各要素に分割するには、要素の型(構造体)を知らなくても、要素の個数とサイズがわかれば十分です。
|
3
|
+
②事前にどんな型の配列が渡されるかわからないため、qsortの内部では配列の要素はvoid *となっています。配列を各要素に分割するには、要素の型(構造体)を知らなくても、要素の個数とサイズ(第2,3引数)がわかれば十分です。
|
4
4
|
よって、比較関数(compare)では、要素を比較する前に元の型(構造体)にキャストし直す必要があります。
|
5
5
|
|
6
6
|
③比較関数(compare)は、qsort内部で配列の要素を比較するために何度も呼び出されます。よって、常に0になることはありません。
|
1
訂正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
①比較関数(compare)の実際の呼び出しはqsort内部で行われます。このとき、引数として比較する配列の要素
|
1
|
+
①比較関数(compare)の実際の呼び出しはqsort内部で行われます。このとき、引数として比較する配列の要素が渡されます。
|
2
2
|
|
3
3
|
②事前にどんな型の配列が渡されるかわからないため、qsortの内部では配列の要素はvoid *となっています。配列を各要素に分割するには、要素の型(構造体)を知らなくても、要素の個数とサイズがわかれば十分です。
|
4
4
|
よって、比較関数(compare)では、要素を比較する前に元の型(構造体)にキャストし直す必要があります。
|