C言語で変数に初期値を割り当てずに定義するとどうなるか
C 言語では変数を定義するときに初期値を指定しないと変数の値はなにとなく定まらないような状態になります。この値が決まっていない変数「未初期化変数」と呼びます。未初期化変数はメモリ上では領域を確保していますが、この領域に格納される値は決められておらず、過去に格納していた値やランダムな値が入っている場合もあります。
初期化されていない変数を使用すると以下の問題が発生します。
- 初期化されていない変数にはデリケートな情報が含まれている可能性があり、取り扱い方を誤ると情報漏えいのリスクにつながる可能性があります。
- 初期化されていない変数は、計算や論理判断を行う際に予期しない結果を招く可能性があります。その値は不確定だからです。
- 初期化されていない変数は使用時にプログラムのクラッシュや異常な動作を引き起こす可能性があります。
変数の定義時に初期値を設定するか、定義後に速やかに代入操作を行うことが推奨されています。