Internally, in the C library, the qsort routine
is working with pointers, and lots of them. You may think
all the world is a stack, but in reality, it isn't. It's C,
it's pointers, and the comparison function is assumed to behave.
Of course you'll run the risk of following a pointer to no-no
land if the function doesn't behave. C isn't Perl.