Seuraavassa on eräs esimerkki qsort - aliohjelman käytöstä. Ohjelma arpoo ( rand) satunnaisen kokonaislukutaulukon ja tämän jälkeen järjestää sen. qsort kutsuu vertailualiohjelmaa kahdella osoitintyyppisellä muuttujalla, jotka osoittavat verrattaviin alkioihin. Osoittimet on määritelty void * - tyyppisiksi. Koska esimerkissämme alkiot ovat kokonaislukuja, pitää osoittimet käytön yhteydessä muuttaa int * - tyyppisiksi.
Vertailualiohjelman pitää palauttaa negatiivinen luku, mikäli 1. alkio on pienempi kuin toinen, 0 mikäli ne ovat samoja ja positiivinen luku, mikäli 1. on suurempi ("erotuksen etumerkki"). Siis tässä tapauksessa lukujen vähennyslasku tuottaa valmiiksi halutunlaisen tuloksen.
... /* Alkioiden vertailufunktio. */ int sort_function(const void *a, const void *b) { return *(int *)a - *(int *)b; } int main(void) { int i,x[KOKO]; for (i=0; i<KOKO; i++) x[i] = rand(); tulosta(x); qsort((void *)x,KOKO,sizeof(x[0]),sort_function); tulosta(x); return 0; }
qsort - aliohjelman kutsussa pitää kertoa lajiteltavan taulukon (osaa lajitella vain taulukoita) alkuosoite, koko alkioina sekä kunkin alkion koko, sekä vertailufunktion osoite.
Huomattakoon, ettei kutsun viimeinen parametri sort_function aiheuta kutsua aliohjelmaan sort_function, vaan välittää qsort aliohjelmalle lajittelufunktion osoitteen. Kääntäjä tietää tämän eron siitä, ettei funktion nimen perässä ole sulkuja!