#include<stdio.h>
int cmpfn(void *elem1, void *elem2)
{
int *ip1 = elem1;
int *ip2 = elem2;
return *ip1 - *ip2;
}
void *lsearch(void *key, void *base ,int n, int elemSize,
int (*cmpfn)(void *,void *))
{
int i=0;
for( i=0; i<n; i++)
{
void *elemAddr = (char *)base + i*elemSize;
if(cmpfn(key,elemAddr) == 0)
return elemAddr;
}
return NULL;
}
int main()
{
int array[] = {1,3,5,7,9,11,13,15,17,19};
int key1 = 13;
int key2 = 33;
int *find1 = NULL;
int *find2 = NULL;
find1 = lsearch(&key1,array,sizeof(array)/sizeof(int),
sizeof(int),cmpfn);
find2 = lsearch(&key2,array,sizeof(array)/sizeof(int),
sizeof(int),cmpfn);
printf("address of array is:%p\n",array);
printf("address of find1 is:%p\n",find1);
printf("address of find2 is:%p\n",find2);
return 0;
}
c语言范式编程之lsearch
最新推荐文章于 2023-08-03 14:50:51 发布