Я не уверен, что это возможно сделать с помощью qsort, потому что то, что я хочу отсортировать (массив указателей на структуру), не является тем, что я сравниваю (строки
Вот сокращенная версия моей программы (предположим, что все данные о студентах находятся в ядре до того, как мы вызовем qsort(), а n — количество записей для сортировки):
struct student {
char lname[NAMESIZE + 1];
char fname[NAMESIZE + 1];
short mid;
short final;
short hmwks;
};
int cmp(const void *, const void *);
int
main(int argc, char **argv)
{
int n;
struct student *data[MAX];
qsort(data, n, sizeof(struct student *), cmp);
return 0;
}
int
cmp(const void *p0, const void *p1)
{
return strcmp((*(struct student *) p0).lname,
(*(struct student *) p1).lname);
}