≫ ホーム ≫ C言語ヘッダファイル別一覧 | C言語アルファベット別一覧 ≫ stdlib.h ≫ bsearch
整列 (sort) 済みの配列から値を探索します.
#include <stdlib.h>
void *bsearch( const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *) );
bsearch 関数は先頭要素を base が指すオブジェクトの配列 (要素数が nmemb 個,各要素の大きさが size である配列) から,key が指すオブジェクトに一致する要素を探索します.なお,base が指すオブジェクト配列は昇順に整列されている必要があります.
compar が指す比較関数は key オブジェクトへのポインタを第 1 引数とし,配列要素へのポインタを第 2 引数として呼び出されます.
compar が指す比較関数は以下のルールに基づいて実装する必要があります.
※ bsearch 関数の名前は 2 分探索 (binary Search) に由来しますが,内部で 2 分探索アルゴリズムを使用してる保障はありません.(処理系定義)
メモリ領域の内容から任意の値を探索する のサンプルプログラムをご覧下さい.
たくさんあるC言語関連の書籍の中でも特に役に立った本です.よかったら参考にしてみてください.
C言語の実践的参考書.少々値段は張りますが初心者を脱しようとしている人は絶対に読むべきです.
文法だけでなく,コーディングスタイルやデバッグなど文字通り「実践的」なことが書かれているので非常にためになります.
オライリーの本は,読みにくい本が多いのですが本書はとても読みやすくオススメです.
ポインタの解説書としては最高の書籍です.
この1冊でポインタを完全に理解することができます.全くの初学者が読むには敷居が高いですが,入門書を読み終えた後に読むと非常に有益です.