0
SSE 명령을 배우려고하고 있는데 두 개의 matice를 곱하려고합니다.내부 포인터로 유니온 포인터 선언
typedef union{
__m128 vec;
float* afloat;
}u_float;
int main(){
__declspec(align(16)) u_float *mat1;
mat1 = (u_float*)malloc(sizeof(u_float)*4);
for(int i = 0; i < 4; i++)
mat1[i].afloat = (float*)malloc(sizeof(float)*4);
for(int i = 0; i < 4; i++)
for(int j = 0; i < 4; j++)
mat1[i].afloat[j] = 1; // Error.
return 0;}
- 이 왜 그 오류를 던지고있다 : 나는 그들 중 하나를 초기화 할 때 그러나,이 프로그램은 여기에 오류가 발생합니다 코드의
Access violation when typing in location
와 충돌?
- 그리고이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
이 질문은 SSE 지침과 어떤 관련이 있습니까? – zx485
@ zx485 나중에 _mm_mul_ps'와'_mm_hadd_ps' 함수를 사용하여 matice를 곱합니다. 그러나 여기서 주요한 문제는 SSE와는 아무런 관련이 없습니다. – blackout
그 노조의 요점은 무엇입니까? 나중에 코드가'__m128' 값이나 포인터를 가지고 있는지 어떻게 결정합니까? '__m128 * vec'라고 쓰고 싶습니까? –