共用方式為


_lsearch_s

執行線性搜尋的值。 版本的_lsearch中所述的安全性增強功能與安全性功能,則在 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
    若要搜尋的物件。

  • base
    要搜尋的陣列的基底指標。

  • num
    項目數目。

  • size
    每個陣列元素,以位元組為單位的大小。

  • compare
    指標比較常式。 第二個參數是變數的指標,搜尋的索引鍵。 第三個參數是要比較具有索引鍵陣列元素的指標。

  • context
    可能的比較函式中存取物件的指標。

傳回值

如果key , _lsearch_s 的陣列元素中傳回的指標base符合key。 如果key找不到, _lsearch_s 新加入的項目結尾的陣列中傳回的指標。

如果不正確的參數傳遞給函式,不正確的參數處理常式會叫用,如所述參數驗證。 如果要繼續,請再允許執行errno 設定為 [ EINVAL ,則函數會傳回NULL。 如需詳細資訊,請參閱 errno、 _doserrno、 _sys_errlist 和 _sys_nerr

錯誤狀況

key

base

compare

num

size

errno

NULL

任何

任何

任何

任何

EINVAL

任何

NULL

任何

!= 0

任何

EINVAL

任何

任何

任何

任何

EINVAL

任何

任何

NULL

系統

任何

EINVAL

備註

_lsearch_s函式會執行線性搜尋值key的陣列中num項目,每個width個位元組。 不像bsearch_s, _lsearch_s並不需要排序陣列。 如果key找不到,然後_lsearch_s將它加入至結尾的陣列,然後增量num。

compare函式為使用者提供的常式,會比較兩個陣列項目,並傳回值,指定兩者的關聯性的指標。 compare函式也會考慮做為第一個引數內容的指標。 _lsearch_s呼叫compare在搜尋中,每次呼叫時,將指標傳遞至兩個陣列元素的一或多次。 compare必須比較項目,然後傳回非零值 (亦即不相同的項目) 或 0 (也就相同的項目)。

context指標時相當有用的搜尋的資料結構是物件的部分,並compare函式需要存取物件的成員。 例如,程式碼在compare函式可以將 void 指標轉換成適當的物件型別和存取成員,該物件。 額外的context指標讓_lsearch_s更安全,因為其他的內容可以用來避免使用靜態變數時,讓資料可以使用相關聯的重新進入錯誤compare函式。

需求

常式

所需的標頭

_lsearch_s

<search.h>

如需相容性資訊,請參閱相容性在簡介中。

.NET Framework 對等用法

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱 平台叫用範例

請參閱

參考

搜尋和排序

bsearch_s

_lfind_s

_lsearch