小编use*_*603的帖子

阵列错误 - 访问冲突读取位置0xffffffff

我以前使用SIMD运算符来提高代码的效率,但是我现在面临一个我无法解决的新错误.对于这项任务,速度是至关重要的.

在导入数据之前,将不知道数组的大小,并且可能非常小(100个值)或巨大(1000万个值).对于后一种情况,代码工作正常,但是当我使用少于130036个数组值时遇到错误.

有谁知道是什么导致了这个问题以及如何解决它?

我附上了(测试的)代码,稍后将在更复杂的函数中使用.错误发生在"arg1List [i] = ..."

#include <iostream>
#include <xmmintrin.h>
#include <emmintrin.h>

void main()
{
    int j;
    const int loop = 130036;
    const int SIMDloop = (int)(loop/4);
    __m128 *arg1List = new __m128[SIMDloop];

    printf("sizeof(arg1List)= %d, alignof(Arg1List)= %d, pointer= %p", sizeof(arg1List), __alignof(arg1List), arg1List);
    std::cout << std::endl;

    for (int i = 0; i < SIMDloop; i++)
    {
        j = 4*i;
        arg1List[i] = _mm_set_ps((j+1)/100.0f, (j+2)/100.0f, (j+3)/100.0f, (j+4)/100.0f);
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ sse simd

3
推荐指数
1
解决办法
4807
查看次数

标签 统计

c++ ×1

simd ×1

sse ×1