9
這個簡單的SSE代碼:on MSVC 10矢量不會的push_back()
#include <vector>
#include <emmintrin.h>
int main() {
std::vector<__m128> blah;
blah.push_back(__m128());
}
崩潰與0xffffffff
段錯誤。
可能會出現什麼問題?
這個簡單的SSE代碼:on MSVC 10矢量不會的push_back()
#include <vector>
#include <emmintrin.h>
int main() {
std::vector<__m128> blah;
blah.push_back(__m128());
}
崩潰與0xffffffff
段錯誤。
可能會出現什麼問題?
A std::vector
不分配專門對齊的內存,其中__m128
需要存儲它的數據。您將不得不換出分配器,或者將其替換爲4個浮點數組,然後每次訪問矢量時執行未對齊的加載或複製到對齊的位置。
對齊將是問題。問題是:如何修復以及如何修復 – sehe 2012-07-27 00:03:26
在數據類型中添加__declspec(align(16))不起作用。此外,'__m128'似乎本地對齊:http://msdn.microsoft.com/en-us/library/ayeb3ayc.aspx – slaphappy 2012-07-27 00:09:53
該類型的變量。沒有將對象放入堆內存中。 – Puppy 2012-07-27 00:24:36