>>949 ちょっと待った。
だとすると、qsortの第一引数はvoid **じゃないとおかしいし、
第三引数は不要になっちゃうよ(sizeof(void *)に決まってるから)。
sortされるのは実体でしょう。

http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/lib/libc/stdlib/qsort.c?rev=1.11&content-type=text/plain

これはFreeBSDのlibcのqsort()のソースね。
実際の交換を行っているのはswapcode()というマクロで、
(サイズがlongの場合は特例でswap()の中で交換している)
配列要素をcharまたはlong単位で分割して交換処理をやってるみたい。
他のOSのqsort()も似たようなものではないかと。