Aracılığıyla paylaş


Hata: invalid-allocation-alignment

Adres Temizleme Hatası: invalid-allocation-alignment

İşlev, _aligned_malloc hizalamayı ifade etmek için 2 gücü gerektirir. Iyileştirilmemiş bir genel değişken kullanarak bazı hizalama faktörünün "dış" hesaplamasının simülasyonunu yapıyoruz.

Örnek

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

Bu örneği derlemek ve test etmek için visual studio 2019 sürüm 16.9 veya sonraki bir geliştirici komut isteminde şu komutları çalıştırın:

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

Sonuçta oluşan hata

Screenshot of debugger displaying invalid-allocation-alignment error in example 1.

Ayrıca bkz.

AddressSanitizer'a genel bakış
AddressSanitizer bilinen sorunları
AddressSanitizer derlemesi ve dil başvurusu
AddressSanitizer çalışma zamanı başvurusu
AddressSanitizer gölge baytları
AddressSanitizer bulut veya dağıtılmış test
AddressSanitizer hata ayıklayıcısı tümleştirmesi
AddressSanitizer hata örnekleri