Compartir a través de


Advertencia del compilador (nivel 3) C4316

Es posible que el objeto asignado en el montón no esté alineado para este tipo.

Es posible que un objeto alineado en exceso mediante el uso de operator new no tenga la alineación especificada. Invalide operator new y operator delete para los tipos alineados en exceso a fin de que utilicen las rutinas de asignación alineadas; por ejemplo, _aligned_malloc y _aligned_free. El ejemplo siguiente genera la advertencia C4316:

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

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

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