Aviso do compilador (nível 4) C4221
extensão não padrão usada: 'identifier': não pode ser inicializado usando um endereço de variável automática
Com as extensões padrão da Microsoft (/Ze), você pode inicializar um tipo de agregação (matriz, struct
ou union
) com o endereço de uma variável local (automática).
Exemplo
// C4221.c
// compile with: /W4
struct S
{
int *i;
};
void func()
{
int j;
struct S s1 = { &j }; // C4221
}
int main()
{
}
Essas inicializações são inválidas sob compatibilidade ANSI (/Za).