Erro: invalid-allocation-alignment
Erro de limpeza de endereço: invalid-allocation-alignment
A função _aligned_malloc
requer uma potência 2 para expressar o alinhamento. Simulamos o cálculo "externo" de algum fator de alinhamento usando uma variável global não otimizada.
Exemplo
// example1.cpp
// invalid-allocation-alignment error
#include <Windows.h>
int ExternalAlign = 5;
int main(){
// this externally calculated alignment of 5 isn't valid.
void* ptr = _aligned_malloc(8,ExternalAlign);
return (ptr == nullptr && errno == EINVAL) ? 0 : -1;
}
Para compilar e testar esse exemplo, execute estes comandos em um prompt de comando do desenvolvedor do Visual Studio 2019 versão 16.9 ou posterior:
cl example1.cpp /fsanitize=address /Zi
devenv /debugexe example1.exe
Erro resultante
Confira também
Visão geral do AddressSanitizer
Problemas conhecidos do AddressSanitizer
Referência de linguagem e build do AddressSanitizer
Referência de runtime do AddressSanitizer
Bytes de sombra de AddressSanitizer
Nuvem do AddressSanitizer ou teste distribuído
Integração do depurador do AddressSanitizer
Exemplos de erro do AddressSanitizer