Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 4) C4366

Výsledek unárního operátoru "operátor" může být nerovnaný.

Poznámky

Pokud by člen struktury mohl být kvůli zabalení nerovnaný, kompilátor upozorní, když je adresa člena přiřazena k zarovnanému ukazateli. Ve výchozím nastavení jsou všechny ukazatele zarovnané.

Pokud chcete vyřešit C4366, změňte zarovnání struktury nebo deklarujte ukazatel pomocí klíčového slova __unaligned .

Další informace najdete v tématu __unaligned a balení.

Příklad

Následující příklad vygeneruje C4366.

// C4366.cpp
// compile with: /W4 /c
// processor: IPF x64
#pragma pack(1)
struct X {
   short s1;
   int s2;
};

int main() {
   X x;
   short * ps1 = &x.s1;   // OK
   int * ps2 = &x.s2;   // C4366
}