Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir değer için doğrusal arama gerçekleştirir. CRT'deki Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri içeren sürümü_lsearch.
Sözdizimi
void *_lsearch_s(
const void *key,
void *base,
unsigned int *num,
size_t size,
int (__cdecl *compare)(void *, const void *, const void *),
void * context
);
Parametreler
key
Aranacak nesne.
base
Aranacak dizi tabanının işaretçisi.
number
Öğe sayısı.
size
Her dizi öğesinin bayt cinsinden boyutu.
compare
Karşılaştırma yordamının işaretçisi. İkinci parametre, arama anahtarının işaretçisidir. Üçüncü parametre, anahtarla karşılaştırılacak bir dizi öğesinin işaretçisidir.
context
Karşılaştırma işlevinde erişilebilen bir nesnenin işaretçisi.
Dönüş değeri
bulunursa key , _lsearch_s dizinin öğesiyle base eşleşen keybir işaretçi döndürür. Bulunamazsa key , _lsearch_s dizinin sonunda yeni eklenen öğeye bir işaretçi döndürür.
İşleve geçersiz parametreler geçirilirse, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, errno olarak ayarlanır EINVAL ve işlevi döndürür NULL. Daha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.
Hata koşulları
key |
base |
compare |
number |
size |
errno |
|---|---|---|---|---|---|
NULL |
herhangi bir | herhangi bir | herhangi bir | herhangi bir | EINVAL |
| herhangi bir | NULL |
herhangi bir | != 0 | herhangi bir | EINVAL |
| herhangi bir | herhangi bir | herhangi bir | herhangi bir | sıfır | EINVAL |
| herhangi bir | herhangi bir | NULL |
an | herhangi bir | EINVAL |
Açıklamalar
işlevi, _lsearch_s baytların her size biri olan bir öğe dizisindeki number değer key için doğrusal bir arama gerçekleştirir. _lsearch_s'nin aksinebsearch_s, dizinin sıralanması gerekmez. Bulunamazsa key , _lsearch_s dizinin sonuna ekler ve değerini artırır number.
compare İşlev, iki dizi öğesini karşılaştıran ve ilişkilerini belirten bir değer döndüren, kullanıcı tarafından sağlanan bir yordama yönelik bir işaretçidir. İşlev ayrıca compare işaretçiyi ilk bağımsız değişken olarak bağlama götürür. _lsearch_s arama sırasında bir veya daha fazla kez çağırır compare ve her çağrıdaki iki dizi öğesine işaretçiler geçirir. compare öğeleri karşılaştırıp sıfır olmayan (öğelerin farklı olduğu anlamına gelir) veya 0 (öğelerin aynı olduğu anlamına gelir) döndürmelidir.
İşaretçi context , aranan veri yapısı bir nesnenin parçasıysa ve işlevin compare nesnenin üyelerine erişmesi gerekiyorsa yararlı olabilir. Örneğin, işlevdeki compare kod void işaretçisini uygun nesne türüne dönüştürebilir ve bu nesnenin üyelerine erişebilir. İşaretçinin context eklenmesi daha güvenli hale gelir _lsearch_s çünkü verileri işlev için kullanılabilir hale getirmek için statik değişkenlerin kullanılmasıyla ilişkili yeniden giriş hatalarını önlemek için compare ek bağlam kullanılabilir.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Gereksinimler
| Yordam | Gerekli başlık |
|---|---|
_lsearch_s |
<search.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.