и есть функция, которая сортирует массив этих структур: sort(stct* arr, int n, ind field_no); в функцию помимо прочего передается номер поля, по которому сортировать. Как реализовать сортировку по заданному полю? Я сделал массив типа int offset[] = {0, 15, 30, 45, 49}; смещение каждого поля относительно начала структуры. Для строк это работает нормально, я делаю каст к char* то, что находится в &arr[i] + offset[field_no - 1] и просто вызывал strcmp. А как поступить с полями D и Е? Их надо кастить к int и float соответсвенно, но это лишает алгоритм "универсальности" для каждого поля структуры
Попробуйте сделать как люди и передать в сортировку компаратор, а не номер поля
еще и структура не выровненная 🙈
Я бы менял ему функции сортировки по указанному полю.
А что за функция SORT ?
Никак
Сделать массив функций сортировки для каждого типа поля?
https://t.me/supapro/792739
https://t.me/supapro/764958
У человека Си
И зачем вы свою функцию сортировки пишете вообще?
Ну это не относится к вопросу
Относится Зачем писать свой костыль, если есть готовое стандартное решение?
Обсуждают сегодня