Udostępnij przez


Ostrzeżenie kompilatora (poziom 4) C4221

niestandardowe rozszerzenie używane : "identifier" : nie można zainicjować przy użyciu adresu zmiennej automatycznej

Uwagi

Za pomocą domyślnych rozszerzeń firmy Microsoft (/Ze) można zainicjować typ agregacji (tablica, structlub union) z adresem lokalnej (automatycznej) zmiennej.

Przykład

Poniższy przykład generuje C4221:

// C4221.c
// compile with: /W4
struct S
{
   int *i;
};

void func()
{
   int j;
   struct S s1 = { &j };   // C4221
}

int main()
{
}

Takie inicjacje są nieprawidłowe w ramach zgodności ANSI (/Za).