_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
);
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.
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 |
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.
Rotina |
Cabeçalho necessário |
---|---|
_lsearch_s |
<Pesquisar.h> |
Para obter mais informações de compatibilidade, consulte Compatibility na introdução.
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.