int main()
{
int n = 8;//n=1时正常,n>1时报异常
//complex<double> b[8];//b在栈上正常运行
auto b=new complex<double>[n];//b在堆上报异常
vector<double> y(n);
for (int i = 0; i < n; ++i)
{
b[i] = i;
y[i] = i;
}
complex<double> out = 0;
for (int i = 0; i < n; ++i)
{
out += b[i] * y[i];
}
printf("%g, %g\n", out.real(), out.imag());
return 0;
}
另外,如果b为double数组而不是complex<double>,则能正常运行
虽然cpu不支持avx512,但也不应该异常吧,毕竟其它各种情况都是能正常运行的。
【 在 capriccio 的大作中提到: 】
: 我的一个程序,win11下,vc2022编译,启用avx512就报异常:
: xxx位置引发的异常: 0xC000001D: Illegal Instruction。
: 另一台电脑,win10,vc2019,也是同样的问题。
: ...................
--
修改:capriccio FROM 123.113.109.*
FROM 123.113.109.*