ゼロフィル

読み:ゼロフィル
外語:zero fill
品詞:さ変名詞

(足りない桁や領域を)ゼロで埋めること。

たとえば、ハードディスクドライブにある機密データを完全に消去するために、そのデータのあったディスク領域に0を書きこむことなど。

プログラミングでも、バッファをゼロで埋めるなどは良く行なわれる。

C/C++

CC++では、標準ライブラリ関数である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);