EOF
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

_lsearch_s

Exécute une recherche linéaire pour une valeur. Une version de _lsearch avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du 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

Objet à rechercher.

base

Pointeur vers la base du tableau à rechercher.

num

Nombre d'éléments.

size

taille de chaque élément de tableau en octets.

compare

Pointeur vers la routine de comparaison. Le deuxième paramètre est un pointeur à la clé de la recherche. Le troisième est un pointeur vers un élément de tableau à comparer à la clé.

context

Un pointeur vers un objet qui peut être accédé depuis la fonction de comparaison.

Si key est trouvé, _lsearch_sretourne un pointeur vers l'élément du tableau à l'adresse base qui correspond à key. Si key est introuvable, _lsearch_sretourne un pointeur vers l'élément récemment ajouté à la fin de le tableau.

Si des paramètres incorrects sont passés à la fonction, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres. Si est autorisé à l'exécution de se poursuivre, alors errnoest défini à EINVAL et la fonction retourne NULL. Pour plus d'informations, consultez errno, _doserrno, _sys_errlist, et _sys_nerr.

conditions d'erreur

key

base

compare

num

size

errno

NULL

ANY

ANY

ANY

ANY

EINVAL

ANY

NULL

ANY

!= 0

ANY

EINVAL

ANY

ANY

ANY

ANY

zéro

EINVAL

ANY

ANY

NULL

un

ANY

EINVAL

La fonction d' _lsearch_s exécute une recherche linéaire pour la valeur key dans un tableau d'éléments d' num , chacun d'octets d' width . Contrairement à bsearch_s, _lsearch_s ne requiert pas le tableau à trier. Si key est introuvable, alors _lsearch_s l'ajoute à la fin de le tableau et incrémente num.

La fonction d' compare est un pointeur vers une routine fournie par l'utilisateur qui compare deux éléments de tableau et retourne une valeur spécifiant leur relation. la fonction d' compare prend également le pointeur au contexte comme premier argument. _lsearch_s appelle compare une ou plusieurs fois pendant la recherche, en passant des pointeurs vers deux éléments de tableau à chaque appel. compare doit comparer les éléments puis retourner une valeur différente de zéro (c'est-à-dire les éléments et sont différent) ou 0 (en c'est-à-dire les éléments et sont identiques).

Le pointeur d' context peut être utile si la structure de données trouvée fait partie d'un objet et la fonction d' compare doit accéder aux membres de l'objet. Par exemple, le code dans la fonction d' compare peut effectuer un cast du pointeur void dans le type d'objet approprié et accéder aux membres de cet objet. L'ajout du pointeur d' context rend _lsearch_s plus sécurisées car le contexte supplémentaire peut être utilisé pour éviter les bogues de réentrance associés à utiliser des variables statiques de rendre des données disponibles à la fonction d' compare .

routine

en-tête requis

_lsearch_s

<search.h>

Pour plus d'informations de compatibilité, consultez Compatibilité dans l'introduction.

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de code non managé.

Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.