がありstruct alignedStruct
、特別な位置合わせが必要です (SEE ext):
void* operator new(size_t i) { return _aligned_malloc(i, 16); }
void operator delete(void* p) { _aligned_free(p); }
この配置は、の一意のオブジェクト/ポインターに対しては正常に機能しますalignedStruct
が、次にこれを実行しようとしました:
alignedStruct * arr = new alignedStruct[count];
私のアプリケーションはクラッシュします。問題は間違いなく「配列の配置」に関するものです (正確には前の行にあります):
0xC0000005: Access violation reading location 0xFFFFFFFF.
このようなクラッシュは最大 60% の頻度で発生し、問題が一般的ではないことも示しています。