ごみ (プログラミング)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

ごみ(プログラミング)とは、次のものをいう。

  1. プログラムの実行時に、実行単位(スレッドなど)から参照することができなくなったオブジェクト(『ガベージコレクタ』も参照)。
  2. 初期化がされていない記憶領域に入っているデータ。その内容は実行するたびに異なる可能性がある。

次のC言語のプログラムにおいて、変数xは宣言だけされていて、値が代入されていない。このとき、「xには“ごみ”が入っている」という。

int main() {
   int x;
   printf("%d\n",x);
}

xの値の内容は何であるかは保障されないため、プログラムの動作も保障されなくなり、バグの原因となる。しかしながら、ごみの内容は、短い期間に繰り返し実行した場合は同じ値になることが多い。このため、デバッグ時にごみを入れた状態で何度も実行を行っても、同じ動作になり、バグに気がつかないことも多い。なお、前述のようなバグを防ぐため、Javaなど一部の言語では変数は初期化しないとコンパイルエラーになる(Javaではインスタンスフィールドは初期化しないと、自動的に初期化式が挿入される)。