你的程序写法有问题 Re: 请教大家c++ array# Computation - 科学计算
y*r
1 楼
2000x2000的double数组存储空间需要32MB,超过了linux下面缺省的stack space.
你应该有哪些变量放在哪些地方的知识吧,即使没有,自动型的变量放在stack上总该
知道吧?
把数组定义换成:static double A[2000][2000]; 就没有问题了。
假如使用动态内存分配,也不会有问题。
或者,你把stack空间放开,ulimit -s unlimited,也没有问题。缺省的stack soft
limit是8MB.
fortran嘛,发现数组大,有的编译器会自动扔到heap上。当然有的编译器不会,还是
要放到common中(fortran77)
你应该有哪些变量放在哪些地方的知识吧,即使没有,自动型的变量放在stack上总该
知道吧?
把数组定义换成:static double A[2000][2000]; 就没有问题了。
假如使用动态内存分配,也不会有问题。
或者,你把stack空间放开,ulimit -s unlimited,也没有问题。缺省的stack soft
limit是8MB.
fortran嘛,发现数组大,有的编译器会自动扔到heap上。当然有的编译器不会,还是
要放到common中(fortran77)