【发布时间】:2015-09-06 19:14:44
【问题描述】:
您好,我在使用 bsearch() 函数时遇到了一些问题。我收到“访问冲突读取位置”异常。 我是这样使用的:
typedef char **arstr;
int compareexp(const void *a, const void *b){
return strcmp(*(const arstr)a, *(const arstr)b);
}
binsrch = bsearch(&key, file_array, linecount, WORDMAX+2, compareexp);
'file_array' 是我的动态字符串数组,包含 2401 个元素。从 *.txt 文档中导入的每个元素最长为 22 个字符。
'linecount' 是整数 2402,指的是同一 *.txt 文档中的行号。
'WORDMAX'定义为20
我真的不明白我的功能失败的原因。 我猜 linecount 或 WORDMAX 的值有问题。
【问题讨论】:
-
这是我的 bsearch() 的比较器参数,如此处所述cplusplus.com/reference/clibrary/cstdlib/bsearch
标签: c arrays binary-search dynamic-arrays bsearch