bsearch的cmp

key是char字符串,数据集合是结构体指针,key要与结构体指针的元素比较。

int cmp_fldnm_search(const void *a , const void *b){

 char* aa=(char *)a;
 DB_FIELD* bb=*(DB_FIELD**)b;
 return strcmp(aa,bb->def.field_nm);
 
 //DB_FIELD* xb=(DB_FIELD*)b;
 //ILOG("bb[%x] xb[%x]",bb,xb);
 //xb和bb的地址是不同的。
 //char* aaa=*(char **)a;//出core
 //ILOG("test a[%x] [%s] aa[%x] [%s] aaa[%x] [%s]",a,(char*)a,aa,(char*)aa,aaa);
 //验证发现a与aa地址相同,但是与aaa地址不同。

}


a是key,b是集合。

因为a是key?


DB_FIELD** p_p_fld=NULL;

p_p_fld=(DB_FIELD**)bsearch(ptree->text,allset,num,sizeof(allset[0]),cmp_fldnm_search);

注意,返回值也是DB_FIELD** 类型的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值