读书人

几行VC程序,编译没有关问题,一运行就崩

发布时间: 2012-04-16 16:20:04 作者: rapoo

几行VC程序,编译没问题,一运行就崩溃,为什么?
VC2010编译一个小程序

C/C++ code
#define N 1000000void main(){   int nRand[N];//不能太大,否则栈溢出? 为何编译时不报错误?}

在win7上面,一运行就崩溃。
为什么?

[解决办法]
语法上不错就不会报错,它可不会去考虑你堆栈是否溢出了。
[解决办法]
扩大栈空间的大小

方法为(VC6):项目->属性->链接器->系统->堆栈保留大小


[解决办法]
就好比数组溢出,编译的时候无错误,运行就可能崩溃~
[解决办法]
编译只做语法检查
语法没错误当然就不报错
[解决办法]
探讨
我并没有读写的溢出操作,只是定义了而已。
为什么会导致崩溃? 这块内存既没有被读也没有被写。

堆栈前后也没有破坏

[解决办法]
堆栈溢出

可以改为申请全局、静态或者动态数组,就不会报错了
http://hi.baidu.com/cfans/blog/item/d3842838d8a7602cb9998f49.html

读书人网 >VC/MFC

热点推荐