Редагувати

Поділитися через


Compiler Error C2362

initialization of 'identifier' is skipped by 'goto label'

When compiled by using /Za, a jump to the label prevents the identifier from being initialized.

You can only jump past a declaration with an initializer if the declaration is enclosed in a block that isn't entered, or if the variable has already been initialized.

The following sample generates C2362:

// C2362.cpp
// compile with: /Za
int main() {
   goto label1;
   int i = 1;      // C2362, initialization skipped
label1:;
}

Possible resolution:

// C2362b.cpp
// compile with: /Za
int main() {
   goto label1;
   {
      int j = 1;   // OK, this block is never entered
   }
label1:;
}