Condividi tramite


_lsearch_s

esegue una ricerca lineare di un valore.una versione di _lsearch con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in 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
);

Parametri

  • key
    oggetto da cercare.

  • base
    Puntatore alla base di matrice da cercare.

  • num
    Numero di elementi.

  • size
    Dimensione di ciascun elemento della matrice di byte.

  • compare
    Puntatore alla routine di confronto.Il secondo parametro è un puntatore alla chiave per la ricerca.Il terzo parametro è un puntatore a un elemento di matrice da confrontare con la chiave.

  • context
    Un puntatore a un oggetto che sia accessibile nella funzione di confronto.

Valore restituito

se key viene trovato, _lsearch_srestituisce un puntatore all'elemento della matrice su base tale corrispondenze key.se key non viene trovato, _lsearch_srestituisce un puntatore all'elemento appena aggiunto alla fine della matrice.

Se i parametri non validi vengono passati alla funzione, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, quindi errnoè impostato su EINVAL e restituisce un valore di funzione NULL.Per ulteriori informazioni, vedere errno, _doserrno, _sys_errlist e _sys_nerr.

condizioni di errore

key

base

compare

num

size

errno

NULL

qualsiasi

qualsiasi

qualsiasi

qualsiasi

EINVAL

qualsiasi

NULL

qualsiasi

!= 0

qualsiasi

EINVAL

qualsiasi

qualsiasi

qualsiasi

qualsiasi

zero

EINVAL

qualsiasi

qualsiasi

NULL

an

qualsiasi

EINVAL

Note

_lsearch_s la funzione esegue una ricerca lineare del valore key in una matrice di num elementi, ognuno di width byte.A differenza di bsearch_s, _lsearch_s non richiede la matrice di essere ordinato.se key non viene trovato, quindi _lsearch_s lo aggiunge alla fine della matrice e degli incrementi num.

compare la funzione è un puntatore a una routine fornita dall'utente che confronta due elementi di matrice e restituisce un valore che specifica la relazione.compare la funzione accetta il puntatore al contesto come primo argomento._lsearch_s chiamate compare uno o più volte durante la ricerca, passando i puntatori a due elementi della matrice a ogni chiamata.compare deve confrontare gli elementi e restituisca diverso da zero (indicare gli elementi essere diverso) o 0 (indicare gli elementi sono identici).

context il puntatore può essere utile se la struttura di dati trovata fa parte di un oggetto e compare necessità di funzione di accesso ai membri dell'oggetto.Ad esempio, codice in compare la funzione possibile eseguire il cast del puntatore a void nel tipo di oggetto appropriato e i membri di accesso dell'oggetto.L'aggiunta di context il puntatore fa _lsearch_s più sicuri che il contesto aggiuntivo può essere utilizzato per evitare dei bug con una reentrancy associati all'utilizzo delle variabili statiche per rendere i dati di compare funzione.

Requisiti

routine

Intestazione di associazione

_lsearch_s

<search.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di platform invoke.

Vedere anche

Riferimenti

Ricerca e ordinamento

bsearch_s

_lfind_s

_lsearch