Дилемма Qsort в переполнении стека

Vector<Medicine*>* Controller::sortByStockAsc(){
Vector<Medicine*>* all =repo->getAll();
qsort(all, all->getNrMed(),sizeof(Medicine*), (comparefunction) compareNA);
return all;}

У меня есть код выше, и у моего qsort есть некоторые проблемы. Vector<Medicine*>* это указатель на массив указателей, которые мне нужно отсортировать. getAll() возвращает Vector <Medicine*>*,
Одна из проблем заключается в том, что в qsort() мой getNrMed() не найден, хотя я указал модуль, в котором определена эта функция. Функция выглядит так:

int MedRepository::getNrMed(){
return MedList->getSize();
}

и возвращает int, Что я делаю не так?

0

Решение

qsort не берет Vector<T>*, Требуется указатель на первый элемент вектора.

getNrMed это не метод Vector<T>это метод MedRepository что больше нигде не видно в этом фрагменте.

Тот факт, что вам нужно поставить на compareNA является признаком серьезной проблемы. Почти никогда безопасно привести функцию указатель. Вы должны сделать его без компиляции.

Несомненно, учитывая качество кода, здесь есть дополнительные проблемы — это то, что можно диагностировать, учитывая ограниченный объем кода, который вы представили.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]