2011-03-07 43 views
2

今天我嘗試初始化一個sse類型__m128d的數組。不幸的是它不起作用 - 爲什麼?通常不可能創建sse類型的數組(因爲它們是寄存器類型?)。以下代碼在循環中的賦值處發生段錯誤。sse類型的數組:分段錯誤

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

問候 +轟

回答

4

必須使用_mm_malloc()或_aligned_malloc(),取決於什麼是你的編譯器的首選函數名。 __m128 [di]與新的組合幾乎總是不好的mojo。

+0

+1 for'mojo' ... – Mehrdad 2011-03-07 09:15:26

+0

+1正確答案,不是mojo – 2011-03-07 09:37:51

+0

是的,謝謝!很棒 – Boom 2011-03-07 09:39:23