Compartilhar via


Alinhamento de malloc

É garantido que malloc retorna memória que esteja alinhada corretamente para o armazenamento de qualquer objeto que tenha um alinhamento fundamental e que poderia se ajustar à quantidade de memória alocada.Um alinhamento fundamental é um alinhamento que é menor ou igual ao alinhamento o maior que é suportado pela implementação sem uma especificação de alinhamento. (No Visual C++, este é o alinhamento que é necessário para double, ou 8 bytes.No código que se destina a plataformas de 64 bits, é de 16 bytes). Por exemplo, uma alocação de quatro bytes seria alinhada em um limite com suporte a qualquer objeto de quatro bytes ou menor.

Visual C++ permite tipos que estenderam o alinhamento, que são também conhecidos como tipos sobrealinhados.Por exemplo, os tipos SSE __m128 e __m256, e os tipos declarados usando __declspec(align(n)) onde n é maior que 8, têm alinhamento estendido.O alinhamento de memória em um limite adequado a um objeto que exija o alinhamento estendido não é garantido por malloc.Para atribuir memória para tipos sobre-alinhados, use _aligned_malloc e funções relacionadas.

Consulte também

Referência

Uso da pilha

align (C++)

__declspec