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
}