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