Udostępnij za pośrednictwem


_lsearch_s

Wykonuje liniowej wyszukiwanie wartości.Wersja z _lsearch z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w 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
);

Parametry

  • key
    Obiekt do wyszukiwania.

  • base
    Wskaźnik do podstawy tablicy, które mają być przeszukiwane.

  • num
    Liczba elementów.

  • size
    Rozmiar każdego elementu tablicy, w bajtach.

  • compare
    Wskaźnik do rutynowych porównania.Drugi parametr jest wskaźnik do klucza w celu wyszukiwania.Trzeci parametr jest wskaźnik do elementu tablicy, który należy porównać z kluczem.

  • context
    Wskaźnik do obiektu, który może być dostępny w funkcji porównania.

Wartość zwracana

Jeśli key zostanie znaleziony, _lsearch_s zwraca wskaźnik do elementu tablicy w base , które odpowiadają key.Jeśli key nie zostanie znaleziony, _lsearch_s zwraca wskaźnik do nowo dodany element na końcu tablicy.

Jeśli do funkcji przekazano nieprawidłowe parametry, nieprawidłowy parametr wywoływana jest funkcja obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie jest dozwolone, aby kontynuować, a następnie errno jest ustawiona na EINVAL i funkcja zwraca NULL.Aby uzyskać więcej informacji, zobacz errno, _doserrno, _sys_errlist i _sys_nerr.

Warunki błędów

key

base

compare

num

size

errno

NULL

wszelkie

wszelkie

wszelkie

wszelkie

EINVAL

wszelkie

NULL

wszelkie

!= 0

wszelkie

EINVAL

wszelkie

wszelkie

wszelkie

wszelkie

zero

EINVAL

wszelkie

wszelkie

NULL

an

wszelkie

EINVAL

Uwagi

_lsearch_s Funkcja wykonuje liniowej wyszukiwania dla wartości key w tablicy num elementów, każdy z width bajtów.W odróżnieniu od bsearch_s, _lsearch_s nie wymaga tablicy, które mają być sortowane.Jeśli key nie zostanie znaleziony, następnie _lsearch_s dodaje go do końca tablicy i przyrosty num.

compare Funkcja jest wskaźnik do rutynowych dostarczone przez użytkownika, który porównuje dwa elementy tablicy i zwraca wartość, określając ich relacji.compare Funkcja przyjmuje również wskaźnik do kontekstu jako pierwszy argument._lsearch_swywołania compare jeden lub więcej razy podczas wyszukiwania, przekazując wskaźniki do dwóch elementów tablicy dla każdego wywołania.comparenależy porównać elementy, a następnie powróć albo różną od zera (to znaczy elementy są różne) lub 0 (to znaczy elementy są identyczne).

context Wskaźnik może być przydatne, jeśli struktura danych wyszukiwany jest częścią obiektu i compare funkcja musi mieć dostęp członków tego obiektu.Na przykład kod w compare funkcji można rzutować wskaźnik void do odpowiedniego obiektu typu i access członków tego obiektu.Dodanie context sprawia, że wskaźnik _lsearch_s bardziej bezpieczna, ponieważ kontekst dodatkowe można uniknąć błędów chronometrażu, związanych z używaniem zmiennych statycznych do udostępnienia danych compare funkcji.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_lsearch_s

<search.h>

Informacji dotyczących zgodności, zobacz Zgodność we wprowadzeniu.

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Platforma wywołać przykłady.

Zobacz też

Informacje

Wyszukiwanie i sortowanie danych

bsearch_s

_lfind_s

_lsearch