_lsearch_s

Realiza uma pesquisa linear para um valor.Uma versão do _lsearch com aprimoramentos de segurança, conforme descrito em Recursos 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
    Para procurar o objeto.

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

  • num
    Número de elementos.

  • size
    Tamanho de cada elemento da matriz em bytes.

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

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

Valor de retorno

Se key for encontrado, _lsearch_s retorna um ponteiro para o elemento da matriz em base que corresponde a key.Se key não for encontrado, _lsearch_s retorna um ponteiro para o item recentemente adicionado no final da matriz.

Se os parâmetros inválidos são passados para a função, o manipulador de parâmetro inválido é invocado, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, em seguida, errno for definido como EINVAL e a função retornará 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

O _lsearch_s função realiza uma pesquisa linear para o valor key em uma matriz de num elementos, cada um dos width bytes.Ao contrário do bsearch_s, _lsearch_s não requer a matriz a ser classificado.Se key não for encontrado, em seguida, _lsearch_s adiciona ao final do array e incrementos num.

O compare função é um ponteiro para uma rotina fornecido pelo usuário que compara dois elementos de matriz e retorna um valor especificando seu relacionamento.O compare função pega também o ponteiro para o contexto como o primeiro argumento._lsearch_schamadas compare uma ou mais vezes durante a pesquisa, passando os ponteiros para dois elementos de matriz em cada chamada.comparedeve 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).

O context ponteiro pode ser útil se a estrutura de dados pesquisado é parte de um objeto e o compare função precisa para acessar os membros do objeto.Por exemplo, o código no compare função pode converter o ponteiro nulo em membros de tipo e o acesso a objeto apropriado desse objeto.A adição da context faz com que ponteiro _lsearch_s mais segura porque o contexto adicional pode ser usado para evitar bugs de 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

<search.h>

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

Equivalência do .NET Framework

Não aplicável. Para chamar 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