【发布时间】:2013-07-26 20:48:52
【问题描述】:
我创建了一个 SSE 驱动的矢量类。
我在定期调用的缺陷函数中创建了它的一个实例,这会导致我的程序开始时崩溃。在将其声明为全局的情况下不会发生此问题。
错误信息:进程返回-1073741819 (0xC0000005) 执行 时间:3.471 秒
这是简化的类:
#include <mmintrin.h>
alignas(16) class v3
{
public:
// constructors
inline v3() : m(_mm_setzero_ps()) {}
inline v3(float x, float y, float z) : m(_mm_set_ps(0, z, y, x)) {}
inline v3(__m128 m) : m(m) {}
// Member variables
union
{
struct { float x, y, z; };
__m128 m;
};
};
有什么想法吗?
【问题讨论】:
-
错误信息是什么?它是在代码中的哪一点提出的?
-
进程返回-1073741819 (0xC0000005) 执行时间: 3.471 s 它相对发生在程序开始时。
-
您应该在调试器中运行您的程序,然后提供发生崩溃的代码。您很可能会遇到错位问题。
-
是的,我想这与它超出范围的那一刻有关。
-
你是把它放在一个 STL 容器里吗? STL 容器不对齐。
标签: c++ c++11 compiler-errors crash sse