Condividi tramite


Avviso del compilatore (livello 3) C4316

L'oggetto allocato nell'heap potrebbe non essere allineato per questo tipo.

Un oggetto sovraallineare allocato utilizzando operator new potrebbe non avere l'allineamento specificato. Eseguire l'override dell'operatore new e operator delete per i tipi sovraallineare in modo che usino le routine di allocazione allineate, ad esempio _aligned_malloc e _aligned_free. L'esempio seguente genera l'errore C4316:

// C4316.cpp
// Test: cl /W3 /c C4316.cpp

__declspec(align(32)) struct S {}; // C4324

int main() {
    new S; // C4316
}