开发环境:win2003 + VS2008 + MFC工程
调用一个自己写的函数 Cut()
断点调试时,
Cut()
{  ------------------->运行到这个大括号时,调试进入了chkstk.asm文件
   在chkstk.asm文件内运行到
   test    dword ptr [eax],eax     ; probe page.
   这里是个循环,在这句代码执行多次以后报错“Stack overflow”我这个Cut()函数里的代码一句都还没执行}请教是啥问题??

解决方案 »

  1.   

    Stack Overflow一般是,你定义了很大的数组,或者是,你有死递归。
      

  2.   

    Cut() 里面是否有递归调用,数组等是否造成栈溢出
      

  3.   

    没有用到递归调用啊
    我说一下,是这样的
    程序刚运行时是好的,然后我移动一下主窗体
    此时才报堆栈溢出当然,刚运行时也调用了Cut()
    然后移动窗体时也调用了Cut()cut()函数里有
    UCHAR imageBuf[704 * 576 * 2];
      

  4.   

    汗....
    UCHAR imageBuf[704 * 576 * 2];不溢出才怪...
      

  5.   

    cut()函数里有
    UCHAR imageBuf[704 * 576 * 2];
    -----------------------------
    这样,你把这个ImageBuf用New的方式申请到堆上试试。 
      

  6.   

    简单
    cut()方法调用一次就够了跟下面这个没关系,我分配的比它大的多都没问题。
    UCHAR imageBuf[704 * 576 * 2];