Delen via


Fout: invalid-allocation-alignment

Adres opschoningsfout: ongeldige toewijzing-uitlijning

Opmerkingen

De _aligned_malloc functie vereist een macht van 2 voor het uitdrukken van de uitlijning. We simuleren de 'externe' berekening van een bepaalde uitlijningsfactor met behulp van een niet-geoptimaliseerde globale variabele.

Voorbeeld

// 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;
}

Als u dit voorbeeld wilt bouwen en testen, voert u deze opdrachten uit in een Opdrachtprompt voor ontwikkelaars van Visual Studio 2019 versie 16.9 of hoger:

cl example1.cpp /fsanitize=address /Zi
devenv /debugexe example1.exe

Resulterende fout

Schermopname van foutopsporingsprogramma met een ongeldige toewijzingsuitlijningsfout in voorbeeld 1.

Zie ook

Overzicht van AddressSanitizer
AddressSanitizer bekende problemen
AddressSanitizer-build- en taalreferenties
naslaginformatie over AddressSanitizer-runtime
addressSanitizer schaduwbytes
AddressSanitizer-cloud of gedistribueerde tests
integratie van AddressSanitizer-foutopsporingsprogramma's
voorbeelden van AddressSanitizer-fouten