我用 C++ 编写了一个简单的代码,然后在 linux ubuntu 11.04 上用 g++ 编译它,没有收到任何错误,但是当我运行可执行文件时,收到此错误“分段错误”。
我知道我的代码没有问题,并且这个错误与编译器有关。
有人可以帮助我吗?
我的代码是:
#include <math.h>
int main()
{
double a[200][200][200],b[200][200][200],c[200][200][200];
int i,j,k;
double const pi=3.14;
for(k=0;k<200;k++)
{
for(j=0;j<200;j++)
{
for(i=0;i<200;i++)
{
a[i][j][k]=sin(1.5*pi*i)*cos(3.5*pi*j)*k;
b[i][j][k]=cos(1.5*pi*i)*cos(2.5*pi*k)*j;
c[i][j][k]=a[i][j][k]-b[i][j][k];
}
}
}
}
这三个阵列需要大约 190MB 的空间,这几乎肯定超出了操作系统施加的堆栈大小限制。
尝试在堆上分配它们(使用new
) 而不是将它们放在堆栈上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)