コンパイラの警告 (レベル 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
}