Używanie XMVECTOR z DirectXMath jako członka klasy powoduje awarię tylko w trybie zwolnienia?

Próbowałem użyć XMVECTOR jako członka klasy dla obwiedni, ponieważ wykonuję wiele obliczeń, ale używam XMFLOAT3 tylko raz na ramkę, więc obwiednia ma metodę, która daje mi jej środek w XMFLOAT3 , w przeciwnym razie pozostaje w XMVECTOR; klasa jest usuwana za pomocą __declspec (align (16)) i działa w trybie debugowania. Jednak w trybie Release zawiesza się w momencie, gdy ustawię ją na coś:

    Box& Box::operator=(const Box& box)
    {
        _center = box._center;
        _extents = box._extents;
        return *this;
    }

Ilekroć to robię:

Box A;

Box B;

A = B;

Awaria, dając mi 0xC0000005: lokalizacja odczytu naruszenia zasad dostępu 0x00000000. Również ulega awarii, gdy tworzę go jako wskaźnik:

Box* A = new Box();

To jest konstruktor:

    Box::Box()
    {
        center = XMVectorZero();
        extents = XMVectorSplatOne();
    }

Ponownie, działa to poprawnie w trybie debugowania, ale w wersji ulega awarii. Co może zmienić tryb Release, który generowałby nieprawidłowy kod? Czy muszę zrobić coś innego, poza wyrównaniem pola do 16 bajtów?

questionAnswers(1)

yourAnswerToTheQuestion