Compiler Warning (level 4) C4221

nonstandard extension used : 'identifier' : cannot be initialized using address of automatic variable

Microsoft C/C++ allows you to initialize an aggregate type (array, struct, or union) with the address of a local (automatic) variable.

The following example causes this warning:

struct S
{
   int *i;
};
void func()
{
   int j;
   struct S s1 = { &j };  // warning
}

This extension can prevent your code from being portable to other compilers and will generate an error under the /Za command-line option.