Tag: bsearch

从bsearch和lfind确定索引?

我试图在lfind和bsearch返回指向它找到的元素的指针之后获取数组中元素的索引。 到目前为止我有这个: (char *) (found – cv->baseAddress); 找到的是函数找到的地址,基址是元素0的地址。但是,编译器给出了这个错误: cvector.c:150:28:警告:减法中使用的’void *’类型的指针cvector.c:150:4:warning:return从指针生成整数而没有强制转换 我该怎么办?

qsort和bsearch指针数组

我需要排序一个指向struc的指针数组。 实际上,我需要在地址中进行搜索,以查看数组中是否存在指向结构的指定指针。 不幸的是,我在这些结构中没有任何“可比性”的东西,所以我只想按地址排序。 我的代码是这样的: item* arr[SIZE]; //something is inserted qsort(arr, SIZE, sizeof(item*), (void*)compare_funct); //CUT bsearch(curr, arr, SIZE, sizeof(item*), (void*)compare_funct); 我尝试创建一个compare_funct,只是将指针转换为int并返回它们的差异,但它似乎不起作用。 特别是,当我进行bsearch时,即使我知道元素包含在数组中,我总是得到一个NULL作为返回值。

bsearch和struct(自定义类型)

我有一个像这样的数组: typedef struct INSTR { char* str; int argc; } INSTR; const static INSTR instructions[] = { {“blue”,1}, {“green”,2} }; 然后我试着做一个bsearch ,但我收到了Segmentation fault信息: int comp(const void *a, const void *b) { const INSTR *aa = (INSTR*)a; const INSTR *bb = (INSTR*)b; // if I “return 0;” here i get no error. return strcmp(aa->str, bb->str); } […]

如何在数组bsearch()中找到插入点?

在C(标准库)中使用bsearch()可以快速找到排序数组中的条目。 但是,如何计算插入新条目的位置(使用标准库)? bsearch()专门检查找到的项的键是否等于传递的键,如果不是,则返回NULL – 因此不能使用它。

麻烦使用bsearch与字符串数组

我试图在C中的字符串数组上使用c builtin bsearch时遇到一些令人困惑的行为。这是代码。 我知道你可以使用内置的strcmp来搜索字符串数组,但我包含myStrCmp用于调试目的,因为我不知道为什么它不起作用。 const char *stateNames[] = {“Alabama”, “Alaska”, “Arizona”, “Arkansas”, “California”, “Colorado”, “Connecticut”, “Delaware”, “Florida”, “Georgia”, “Hawaii”, “Idaho”, “Illinois”, “Indiana”, “Iowa”, “Kansas”, “Kentucky”, “Louisiana”, “Maine”, “Maryland”, “Massachusetts”, “Michigan”, “Minnesota”, “Mississippi”, “Missouri”, “Montana”, “Nebraska”, “Nevada”, “New Hampshire”, “New Jersey”, “New Mexico”, “New York”, “North Carolina”, “North Dakota”, “Ohio”, “Oklahoma”, “Oregon”, “Pennsylvania”, “Rhode Island”, “South […]