C/C++ VC2013数组太大,导致程序无法运行

现在有两台电脑,一台自己,一台公司,自己的电脑能运行下面的程序,而公司的电脑无法运行,原因为编程程序时inbuf_data数组太大,导致程序无法运行,屏蔽这句话后,程序能运行;之前怀疑两台电脑的内存不一样,现在将配置弄到一样后(与自己电脑一样),程序还是不能运行,请帮忙分析下原因及解决方式。编程环境为VC2013,代码如下:

    short int result0[8192];
short int result1[8192];
short int result2[8192];
short int result3[8192];
short int result4[8192];
short int result5[8192];
short int result6[8192];
short int result7[8192];
short int inbuf_data[65536*5];
short int index1[8192];
ZeroMemory(result0, 8192);
ZeroMemory(result1, 8192);
ZeroMemory(result2, 8192);
ZeroMemory(result3, 8192);
ZeroMemory(result4, 8192);
ZeroMemory(result5, 8192);
ZeroMemory(result6, 8192);
ZeroMemory(result7, 8192);
ZeroMemory(inbuf_data, 65536 * 5);

```

那就改用动态分配

short int *inbuf_data;
inbuf_data = new short int[65536*5];

直接使用short int inbuf_data会放在程序的栈里,一般是2M,你的其它数组大概都是KB量级,inbuf_data是几百kB量级。如果你的报错是overflow,那么应该是这个问题。

解决上面问题可以修改栈大小,在linux查看ulimit -s,如果很小的话,可以设置ulimit -s 某个数,或者你可以使用动态分配的方式,这样数组会放在堆里,而不是栈里。

如果报错不是overflow,那请把错误贴上来