Redian新闻
>
你的程序写法有问题 Re: 请教大家c++ array
avatar
你的程序写法有问题 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)
avatar
h*o
2
我猜也是stack不够大。不过找了半天没找到怎么查缺省的stack size是多少

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

avatar
y*r
3
sh: ulimit -a
csh: limit

【在 h***o 的大作中提到】
: 我猜也是stack不够大。不过找了半天没找到怎么查缺省的stack size是多少
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。