中易网

c语言问题,在vc内运行没有错误,但是提交到系统就错误了,估计是数组越界,但是找了很久都没有越界

答案:1  悬赏:0  
解决时间 2021-01-14 12:46
  • 提问者网友:星軌
  • 2021-01-13 22:07
c语言问题,在vc内运行没有错误,但是提交到系统就错误了,估计是数组越界,但是找了很久都没有越界
最佳答案
  • 二级知识专家网友:平生事
  • 2021-01-13 23:25
不是数组越界,是堆栈溢出(Stack Overflow)。是运行环境对堆栈大小的设置不同造成的。(堆栈简单来说就是某个函数的局部变量所用的内存空间)

你在main中声明了一个很大的数组int c[300][300],因为它是局部变量所以被创建在main函数的堆栈(Stack)中。VC的默认堆栈设置比较大所以可以装下,你的测试系统默认设置可能比较小,所以就爆栈了...

你把int c[300][300];放到一切函数之外吧,声明为全局变量,这样就是创建在堆(Heap)上而不是堆栈(Stack)上,这就没有大小限制了。

以后记得:保险起见,太大的数组都不要放到函数里声明,而要声明为全局变量。如果非要开在函数内部,请用malloc()直接开辟堆(Heap)空间。具体用法请自行度娘。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息