research!rsc: Using Uninitialized Memory for Fun and Profit

N個のフラグを扱う場面があるとする。まず，こんな感じで書き始めることになると思う。

bool flags[N]; for ( int i= 0 ; i<N; ++i) flags[i]= false ;

もしこのとき，Nがものすごく大きかったら……フラグをクリアする処理だけで，結構な時間を食ってしまうかもしれない。

そんなときのために編み出されたのが，上のエントリーで紹介されているアルゴリズム。二つのテーブルを組み合わせて使うことにより，メモリを未初期化のまま使うことを可能にしている。

未初期化のメモリへのアクセスなんて，それ自体が不正なことのように感じられるかもしれないけれど，たまには未初期化のまま使ってみるのもオツなものですよ……という話。実用性については，正直なところあまり無いと思う。