Compartilhar via


_lsearch_s

Executa uma Pesquisar linear para um valor.Uma versão do _lsearch com aprimoramentos de segurança sistema autônomo descrito em Aprimoramentos de segurança no 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
);

Parâmetros

  • key
    Objeto para pesquisar.

  • base
    Ponteiro para a base da matriz a ser pesquisada.

  • num
    Número de elementos.

  • size
    dimensionar de cada elemento da matriz em bytes.

  • compare
    Ponteiro para a rotina de comparação.O segundo parâmetro é um ponteiro para a chave de Pesquisar.O terceiro parâmetro é um ponteiro para um elemento de matriz a ser comparada com a tecla.

  • context
    Um ponteiro para um objeto que pode ser acessado na função de comparação.

Valor de retorno

If key for encontrado, _lsearch_s Retorna um ponteiro para o elemento da matriz em base que corresponde ao key. If key não for encontrado, _lsearch_s Retorna um ponteiro para o item recém-adicionado no participante da matriz.

Se parâmetros inválidos psistema autônomosed para a função, o manipulador de parâmetro inválido é invocado, sistema autônomo descrito em Validação de parâmetro. Se a execução for permitida para continuar, em seguida, errno é definido como EINVAL e a função retorna NULL. Para obter mais informações, consulte errno, _doserrno, _sys_errlist e _sys_nerr.

Condições de erro

key

base

compare

num

size

errno

NULL

any

any

any

any

EINVAL

any

NULL

any

!= 0

any

EINVAL

any

any

any

any

zero

EINVAL

any

any

NULL

um

any

EINVAL

Comentários

The _lsearch_s função realiza uma Pesquisar linear para o valor key em uma matriz de num elementos, cada um dos width bytes. Ao contrário de bsearch_s, _lsearch_s não requer que o array a ser classificado. If key não for encontrado, em seguida _lsearch_s adiciona ao participante da matriz e incrementos num.

The compare função é um ponteiro para uma rotina fornecido pelo usuário que compara dois elementos de matriz e retorna um valor especificando suas relações. The compare função também é o ponteiro para o contexto sistema autônomo o primeiro argumento. _lsearch_s chamadas compare uma ou mais vezes durante a Pesquisar, passar ponteiros para dois elementos de matriz em cada telefonar. compare deve comparar os elementos e, em seguida, retornar um diferente de zero (ou seja, os elementos são diferentes) ou 0 (ou seja, os elementos são idênticos).

The context ponteiro pode ser útil se a estrutura de dados pesquisado é parte de um objeto e o compare função precisa acessar os membros do objeto. Por exemplo, o código no compare função pode converter o ponteiro void os membros de tipo e o acesso do objeto apropriado desse objeto. A adição do context faz com que ponteiro _lsearch_s mais seguro porque contexto adicional pode ser usado para evitar bugs reentrância associados ao uso de variáveis estáticas para disponibilizar dados para o compare função.

Requisitos

Rotina

Cabeçalho necessário

_lsearch_s

<Pesquisar.h>

Para obter mais informações de compatibilidade, consulte Compatibility na introdução.

Equivalente do NET Framework

Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Pesquisa e classificação

bsearch_s

_lfind_s

_lsearch