_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. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Поиска и сортировки

bsearch_s

_lfind_s

_lsearch