こんにちは私はbsearch()関数にいくつかの問題があります。私は "アクセス違反の場所を読み込む"例外が発生します。 は、次のように私はそれを使用しています:Cで動的配列を持つ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の値に問題があると思います。
どのようにしてcompareexpを呼び出しますか? – chikuba
これはコンパレータですここで説明したmy bsearch()の引数http://www.cplusplus.com/reference/clibrary/cstdlib/bsearch/ –