fill品詞:さ変名詞(足りない桁や領域を)ゼロで埋めること。概要たとえば、ハードディスクドライブにある機密データを完全に消去するために、そのデータのあったディスク領域に0を書きこむことなど。プログラミングでも、バッファーをゼロで埋めるなどは良く行なわれる。特徴C/C++CやC++では、標準ライブラリ関数であるmemset関数を使ってゼロフィルするのが一般的である。memset関数は引数が三つあり、しかもポインター渡しがあるため、よくバグが混入する。そこで、次のようなマクロを用意すると、バグ発生が未然に防げる。sizeof(var))これで、引数ひとつで中身は真っ白。stSockAddr;ZEROFILL(stSockAddr);ポインターとして確保した領域のゼロフィルは、次のようにする。tagHoge));ZEROFILL(*pstHoge);考え方メモリーを0で埋めても、必ずしも値として0になるとは限らない。int型など整数型は、殆どの環境で期待通りに動作する。[]などの文字列型の場合も、殆どの環境で問題なく、このため多くの場合、この方法がよく使われている。floatやdoubleなど浮動小数点数の場合、メモリーを0で埋めても意図した結果にはならない。メモリーを初期化せずに使っているのと同じ現象が発生してしまう。他に、ポインター型変数も、多くの環境では未使用時(NULL)はアドレス0を指すため問題はないが、プロセッサーによっては全く違うアドレスを指すのが標準となっていることがあり、この場合は動作に問題が生じる可能性がある。bool型など、数でないような変数型も、どのような動作になるか想定できなくなる。色々な型が収まった構造体などをインスタンス化したあと、memsetで0クリアして使うというのは、本来は正しくない。動いていたとしても、それはたまたま動いていたに過ぎないいのである。