コンパイラの警告 (レベル 1) C4533
'variable' の初期化は 'instruction' によってスキップされます。
解説
プログラム内の命令によって制御フローが変更されたので、変数を初期化する命令は実行されませんでした。
/sdl
(追加のセキュリティ チェックを有効にする) コンパイラ オプションを使用すると、この警告がエラーに昇格されます。
例
次の例では C4533 が生成されます。 この問題を解決するには、ジャンプ命令の前またはジャンプのターゲットの後に初期化を移動します。
// C4533.cpp
// compile with: /W1
#include <stdio.h>
struct A
{
int m_data;
};
int main()
{
if (1)
{
goto Label;
}
A a = { 100 };
Label: // C4533
printf("\n%d", a.m_data); // prints an uninitialized value
}