程序在运行时显示:“MP.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。”
在调试时显示:Unhandld exception in MP.exe,OXC0000FD,stack overflow.
但是我只要把一个float c[65536];语句删掉就对了,可是这个语句应该不会有问题呀!
请各位帮帮忙,我想了好久也没有明白。分不够我再加!!!

解决方案 »

  1.   

    线程的栈空间大小是有限制的,默认为1MB,超过了就会抛出栈溢出异常。可以通过修改连接开关/STACK:[reserve]改变栈空间大小。
      

  2.   

    你是不是在递归函数里加了float c[65536]?
      

  3.   

    如果你把float c[n]  n的值小些会如何呢
      

  4.   

    听了楼上的,我用了以下语句:
    float *c;
    c = new float [65536];
    程序就可以用了,我是瞎试的。
    这样是不是重新申请了内存空间?使得程序可以用了?
      

  5.   

    float c[65536];地址空间在堆栈里
    线程的栈空间大小是有限制的,默认为1MB,超过了就会抛出栈溢出异常。c = new float [65536];  在堆里分配内存/记得释放,否则内存泄露/
    堆一般来说,没什么限制,取决于你的资源状况你应该知道堆和堆栈的区别把………………