Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > [C] Проблема с передачей аргументов функции


Автор: whoever 2.11.2008, 17:24
Вопрос по Си, а не Си++.

Ошибка вылетает на вызове функции *comp[0] в тот момент, когда эта переменная указывает на strcmp1(). При этом до первой инструкции в strcmp1() не доходит. v[0] и v[1] указывают на существующие строки. Что я делаю неверно?
Код
void sort(void **v, int (**comp)(void**, void**, int, int, int)) {
    ...
    void *fi = v[1], *fleft = v[0];
    (*comp[0])(&fi, &fleft, 0, 0, 0);
    ...
}

Код
int strcmp1(char** s1, char** s2, int reversed, int ci, int d) {
    ...
}

Автор: J0ker 2.11.2008, 19:27
вероятно вы неверно передаете адрес функции strcmp1 в sort
в данном случае адрес функции сравнения должен быть помещен в в первый (индекс 0) элемент массива и в sort должен передаваться адрес этого массива

Автор: whoever 3.11.2008, 12:05
Оказалось, что ошибка в другом месте. J0ker, спасибо за внимание.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)