書き込みが行われていない変数が読み取られています。
C/C++ では、すべてのグローバル変数またはスタティック変数は暗黙的にゼロに初期化されます。そのため、ローカル変数または動的に割り当てられるストレージのみ初期化されません。ローカル変数は、ブロックの入口で変数 (通常はサブルーチン自体) が宣言されると有効になります。動的に割り当てられるストレージは、割り当てポイントから有効になります。ストレージが有効になった時点から問題の読み取りまでの間にストレージへの代入が行われなかった場合、初期化されていない読み取りが発生します。このエラーは、そのような実行パスが少なくとも 1 つ見つかったことを示します。
場合によっては、見つかった実行パスは実際には実行されないことがあります。この場合、誤ってエラーがレポートされた可能性があります。ただし、別の実行パスで初期化されていない読み取りが行われている場合もあるので、 このエラーを誤判定と見なす前に、すべての実行パスに問題がないことを確認してください。
ID |
問題箇所 |
説明 |
---|---|---|
1 |
初期化されていない読み取り |
変数が読み取られた場所 |
#include <stdio> int main(int argc, char **argv) { int unknown; // uninitialized variable printf("unknown value = %d\n", unknown); }
© 2010 Intel Corporation. 無断での引用、転載を禁じます。