从bsearch确定索引并发现?

时间:2013-04-25 09:53:21

标签: c casting void-pointers bsearch

我试图在lfind和bsearch返回指向它找到的元素的指针之后获取数组中元素的索引。到目前为止我有这个:

(char *) (found - cv->baseAddress); 

其中find是函数找到的地址,基址是元素0的地址。但编译器给出了这个错误:

cvector.c:150:28:警告:减法中使用的'void *'类型的指针 cvector.c:150:4:warning:return从指针生成整数而没有强制转换

我该怎么办?

1 个答案:

答案 0 :(得分:2)

您必须将返回的指针类型转换为正确的类型。然后,您还需要将获得的偏移量除以数组中对象的大小以获得索引。