一个简单的C++数组定义问题,搞不明白为什么

梦想实现 2012-06-27 04:33:01
#include <iostream>

#include <cmath>
using namespace std;

void main(){


double R=0.12;
double I=3.68;
double d=1.8*1e-3;
const int Nw=23, Mt=23;
const int num=200;
double x_rho[num];
double y_rho[num];
double z_rho=0;
double Bx_rho[num][num];
double By_rho[num][num];
double Bz_rho[num][num];
double B_rho[num][num];
cout<<"hello world"<<endl;
}

很简单的几句,但是 就是输不出hello world,但是注释掉一个最后四个二维数组中的任何一个就输出来了,请问是为什么?

...全文
168 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
酱油党 2012-06-27
  • 打赏
  • 举报
回复
线程的堆栈溢出了,把上面任意一个二维数组杠掉,或者楼主自己分配内存吧!
梦想实现 2012-06-27
  • 打赏
  • 举报
回复
哈哈 还是两位专业,我说么是怎么回事,谢谢两位,哈哈哈
  • 打赏
  • 举报
回复
光是4个double数组都1M多了
VS 默认栈 1M,把栈调大一些,就没问题了
赵4老师 2012-06-27
  • 打赏
  • 举报
回复
在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可。
梦想实现 2012-06-27
  • 打赏
  • 举报
回复
我 用 int main 返回值试了一下 VC6 VS2010还是同样的问题。 四个二维数组同时存在 我的编译器就不行,运不出 hello world 只能运行处 按任意键继续。。。
luoage_ 2012-06-27
  • 打赏
  • 举报
回复
#include <iostream>
#include <cmath>
using namespace std;

int main(){
double R=0.12;
double I=3.68;
double d=1.8*1e-3;
const int Nw=23, Mt=23;
const int num=200;
double x_rho[num];
double y_rho[num];
double z_rho=0;
double Bx_rho[num][num];
double By_rho[num][num];
double Bz_rho[num][num];
double B_rho[num][num];
cout<<"hello world"<<endl;
return 0;
}

测了一下,没有你说的问题.!!除了void main外
梦想实现 2012-06-27
  • 打赏
  • 举报
回复
我用的 是 VC6 VS2010 都是一样的问题
恨天低 2012-06-27
  • 打赏
  • 举报
回复
什么编译器??

g++表示可以正常输出。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧