(足りない桁や領域を)ゼロで埋めること。
たとえば、ハードディスクドライブにある機密データを完全に消去するために、そのデータのあったディスク領域に0を書きこむことなど。
プログラミングでも、バッファをゼロで埋めるなどは良く行なわれる。
CやC++では、標準ライブラリ関数であるmemset関数を使ってゼロフィルするのが一般的である。
しかしmemset関数は引数が三つあり、しかもポインタ渡しがあるため、よくバグが混入する。そこで、次のようなマクロを用意すると、バグ発生が未然に防げる。
#define ZEROFILL(var) memset(&(var), 0, sizeof(var))
これで、引数ひとつで中身は真っ白。次のように用いる。
struct sockaddr_in stSockAddr;
ZEROFILL(stSockAddr);
ポインタとして確保した領域のゼロフィルは、次のようにする。
struct tagHoge *pstHoge;
pstHoge = (struct tagHoge *)malloc(sizeof(struct tagHoge));
ZEROFILL(*pstHoge);