_lsearch_s
Выполняет линейный поиск значения.Версия _lsearch со службами расширений безопасности, как описано в разделе Средства безопасности в CRT.
void *_lsearch_s(
const void *key,
void *base,
unsigned int *num,
size_t size,
int (__cdecl *compare)(void *, const void *, const void *),
void * context
);
Параметры
key
Объект, который требуется найти.base
Указатель к основанию массива для поиска.num
Число элементов.size
Размер каждого элемента массива в байтах.compare
Указатель на подпрограмму сравнения.Второй параметр указатель на ключ для поиска.Третий параметр - это указатель к элементу массива, которую необходимо сравнить с ключом.context
Указатель на объект, который может быть получен в функции сравнения.
Возвращаемое значение
If key находит _lsearch_sвозвращает указатель к элементу массива с base это соответствует key.If key не находит _lsearch_sвозвращает указатель на вновь добавленный элемент в конец массива.
Если недопустимые параметры передаются в функцию недопустимого параметра, то вызывается обработчик, как описано в разделе Проверка параметров.Если выполнение может продолжить, errnoравно EINVAL и функция возвращает NULL.Дополнительные сведения см. в разделе errno, _doserrno, _sys_errlist и _sys_nerr.
Условия возникновения ошибок
key |
base |
compare |
num |
size |
errno |
---|---|---|---|---|---|
NULL |
any |
any |
any |
any |
EINVAL |
any |
NULL |
any |
!= 0 |
any |
EINVAL |
any |
any |
any |
any |
нуль |
EINVAL |
any |
any |
NULL |
an |
any |
EINVAL |
Заметки
_lsearch_s функция выполняет линейный поиск значения key в массиве num элементы, каждое из width байты.непохоже bsearch_s" _lsearch_s не требует массив отсортирован.If key не удается найти, после чего _lsearch_s добавляет его в конец массива и инкрементов num.
compare функция указатель на предоставляемая пользователем подпрограмму, которая сравнивает 2 элемента массива и возвращает значение, показывающее их связи.compare функция также принимает указатель на контекст в первом аргументе._lsearch_s вызовы compare один или более раз во время поиска, передав указатели до 2 элемента массива при каждом вызове.compare сравнения элементов, а затем вернуть или ненулевое значение (элементы различаются) или 0 (элементы) идентичны.
context указатель может быть полезным, если структура данных, в которой выполняется поиск часть объекта и compare функции требуется доступ к членам объекта.Например, Код compare функции может привести пустой указатель на соответствующий тип объекта и получить доступ к членам объекта.сложение context указатель делает _lsearch_s более безопасных, так как дополнительный контекст можно использовать, чтобы избежать ошибок повторный вход, связанные с использованием статических переменных, чтобы сделать их доступными в compare функция.
Требования
Процедура |
Обязательный заголовок |
---|---|
_lsearch_s |
<search.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Эквивалент в .NET Framework
Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.