Определение индекса от bsearch и lfind?
Я пытаюсь получить индекс элемента в массиве после того, как lfind и bsearch возвращают указатель на найденный элемент. У меня есть это до сих пор:
(char *) (found - cv->baseAddress);
где найдено - адрес того, что функции нашли, а базовый адрес - это адрес элемента 0. Однако компилятор выдает мне эту ошибку:
cvector.c: 150: 28: предупреждение: указатель типа 'void *', используемый в вычитании cvector.c:150:4: предупреждение: возвращение делает целое число из указателя без приведения
Что я делаю?
1 ответ
Решение
Вы должны типизировать возвращаемый указатель на правильный тип. Затем вам также нужно разделить полученное смещение на размер объектов в массиве, чтобы получить индекс.