Определение индекса от bsearch и lfind?

Я пытаюсь получить индекс элемента в массиве после того, как lfind и bsearch возвращают указатель на найденный элемент. У меня есть это до сих пор:

(char *) (found - cv->baseAddress); 

где найдено - адрес того, что функции нашли, а базовый адрес - это адрес элемента 0. Однако компилятор выдает мне эту ошибку:

cvector.c: 150: 28: предупреждение: указатель типа 'void *', используемый в вычитании cvector.c:150:4: предупреждение: возвращение делает целое число из указателя без приведения

Что я делаю?

1 ответ

Решение

Вы должны типизировать возвращаемый указатель на правильный тип. Затем вам также нужно разделить полученное смещение на размер объектов в массиве, чтобы получить индекс.

Другие вопросы по тегам