2

今天我尝试初始化一个 sse 类型 __m128d 的数组。不幸的是它没有用 - 为什么?通常不可能创建 sse 类型的数组(因为它们是寄存器类型?)。以下代码在循环中的分配处出现段错误。

__m128d* _buffers = new __m128d[32];
for(int i=0;i<32;i++)
    _buffers[i] = _mm_setzero_pd();

问候 + 繁荣

4

1 回答 1

4

您必须使用 _mm_malloc() 或 _aligned_malloc(),具体取决于编译器上首选的函数名称。__m128[di] 与 new 结合几乎总是不好的魔力。

于 2011-03-07T09:14:30.913 回答