- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个结构:
typedef struct entry_t {
char * name;
int lines [MAX];
int n;/*n lines*/
} entry_t;
和一个结构数组entry_t * list[MAX];
我尝试使用 bsearch 来获取条目(如果我的以下函数中存在该条目):
int addToList(entry_t * list[], int n, const char * name, int lineNr){
int i = 0;
int j = 0;
entry_t * entry;
entry_t * sentry;
bool found = false;
char * tmp = (char*) malloc(sizeof(char)*MAX);
sentry = (entry_t *) bsearch(name,list,n,sizeof(entry_t *), cmpEntries2);
if(sentry != NULL){
printf("%s",sentry->name);
i = sentry->n;
sentry->lines[i] = lineNr;
sentry->n++;
}
else {
sentry = (entry_t *) malloc(sizeof(entry_t));
strcpy(tmp,name);
sentry->name = tmp;
sentry->lines[0] = lineNr;
sentry->n = 1;
list[n] = sentry;
n++;
}
return n;
}
int cmpEntries2(const void * a, const void * b){
assert (a != NULL);
assert (b != NULL);
printf("DB %s %s\n",(const char*)a,(*(entry_t **)b)->name );
return strcmp( (const char*)a, (*(entry_t **)b)->name );
}
我的数据库日志
DB argc main
DB argv main
DB printf argc
DB printf argv
DB printf argc
DB printf argv
DB printf printf
0M:
奇怪的是,sentry
不为空,但name
很奇怪(随机内存位置)。
谢谢
最佳答案
sentry
(当用于接收bsearch()
的结果时)必须是struct entry_t **
类型。
关于c - bsearch 与结构指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27095536/
要么 cmp func 似乎工作;无法理解在 qsort_cmp 的情况下如何解析 int* 类型的 arg1。 据我所知:int* 被传递给 qsort_cmp,在那里它被更改为 void*,然后在
我有一个看起来像这样的结构: typedef struct dictionary_t{ char word[30]; int foo; int bar; } dictionar
我有一个struct employee比较器和main: #define MAX_SIZE 20 typedef struct Employee{ char name[MAX_SIZE];
我有一个按降序排序的数组,没有重复项。我可以使用 libc 中的 bsearch 函数对其执行二分搜索吗?为此,我是否需要更改传递给它的比较函数? 谢谢 最佳答案 是的,您可以使用bsearch。您需
我有一个结构: typedef struct entry_t { char * name; int lines [MAX]; int n;/*n lines*/ } entry_t; 和一
已修复。 包括 main() { int n; int i; char tempMonth[255]; //Used to store the month until chec
我在进行此搜索时遇到了问题。我非常确定我已经将问题与 bsearch 接受的字节数参数隔离开来。数据数组是一个拼字词典,我 100% 确定整个字典已加载到内存中,但是当我使用 bsearch 时尝试查
我有函数调用 userInteractive(*anangramInfo) ,它传入结构 anangramInfo 的指针,并且该结构包含指向实际字谜词的指针“anagramPointer”。所以,我
我正在尝试在预先排序的数组中查找用户输入的字符串。如果我编写自己的二分查找函数,输入就会被正确找到。如果我使用 C bsearch,我总是得到一个 NULL 指针。 这是相关的代码片段: printf
谁能告诉我为什么以下代码中的 bsearch() 在列表中找不到项目“getwidth”?我尝试了几个编译器,但它们都不适用,所以它一定是我的代码中的一个错误。但是,我真的看不出那里有什么问题。传递给
我正在努力在我的代码中执行 bsearch() 中的比较功能。显然,我想根据包含结构 (word_dict_t) 的字典数组上的键字符串(来自链表)进行二进制搜索 typedef struct {
有没有办法做这样的事情? int key=50; int loop=5; int array[10]={...}; int* Ptr=NULL; qsort(array, 10, sizeof(int
在 C 中使用 bsearch 未能在结构数组中找到字符串“Eva Lam”。此数组按字符串成员的降序排序。检查了很多次,还是不知道bug在哪里?顺便说一句,我正在使用 DEV C++ 5.9.4。请
bsearch 非常适合直接搜索,但是如果我需要例如搜索范围,我应该使用什么? 更新 例如,如果我想找到 a 和 b 之间的值范围 (a >= x < b)。 更新 范围值可以不相等。所以如果我有数组
我有以下程序: #include #include #include #include #include #define DICT_BUFSIZE 64 int compar(const v
我有一个未分类的字典文件,名为“dict.txt”。我已经设法将文件中的单词放入数组中,而且我使用的 qsort() 似乎也工作正常(也就是说,数组已排序)。 当我调用 bsearch() 时出现问题
我有一个指向整数的地址数组(这些整数升序排列)。它们具有重复值。例如:1,2、2、3、3、3、3、4、4…… 我正在尝试获取所有大于 a 的值一定的值(value)(关键)。目前正在尝试使用二进制来实
我有一个这样的数组: typedef struct INSTR { char* str; int argc; } INSTR; const static INSTR instruct
在 C(标准库)中使用 bsearch() 可以快速找到排序数组中的条目。 但是,如何计算插入新条目的位置(使用标准库)? bsearch() 专门检查找到的项目的键是否等于传递的键,如果不是,则返回
我在尝试对 C 中的字符串数组使用 c 内置 bsearch 时遇到一些令人困惑的行为。这是代码。我知道您可以使用内置的 strcmp 来搜索字符串数组,但我包含了 myStrCmp 用于调试目的,因
我是一名优秀的程序员,十分优秀!