1

您好,我的 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 的值有问题。

4

1 回答 1

0

从类似的示例中查看示例后,您似乎可能在比较中缺少 * 或 WORDMAX +2 不是正确的方法。尝试更改该 WORDMAX 以获取您正在使用的结构的大小。

于 2012-04-18T01:10:52.360 回答