DIBとして確保したメモリって、連続していることが保証されてましたっけ。

それとも必ず pointer[x + y * width] みたいにアクセスする
必要がある(==最後にゴミがつく可能性がある)のでしたっけ。