番兵
Sentinel
配列などで、終端を示すために入れる特別な値。
長さを変えられない、あるいは長さがはっきりしない配列に、番兵を入れておくことで、そこで終わりとすることができるようになる。
配列の長さが最初から求められるような状況では不要。
メリット
長さ用のデータを置かなくてよい。
デメリット
バグで番兵を破壊してしまうことがよくある。(バッファオーバーランの要因)
バグで番兵を見逃す事がよくある。(バッファオーバーランの要因)
番兵もデータの一種なので有効なデータとかぶらないように選択する必要がある。
code:c
int p[] = { 2, 3, 5, 7, 11, 13, 17, 19, -1 }; // -1 が番兵