C ++递归中的未处理异常错误

时间:2013-03-27 06:56:23

标签: c++ c++11

所以我有这个函数使用递归来找到最长的数字序列。但每次我运行它,我收到此错误信息:

  

在increaseSeq.exe中0x002871D9处的未处理异常:0xC0000005:   访问冲突写入位置0x01060EC0。

int seqeter(int grid, int startPos,  int seq)
{
    Sequence maxseq;
    maxseq.size = 0;
    for (int rows=0;rows<MAXROWS;rows++)
    {
        for(int cols=0;cols<MAXCOLS;cols++)
        {

            if (grid[startPos.x][startPos.y] < grid[startPos.x+rows][startPos.y+cols])

            {
                return seq;
            }

            else 
            {
                maxseq.list[maxseq.size] = grid[startPos.x][startPos.y];
                maxseq.size ++;
             return generateSeq(grid, startPos, seq);
            }

        }
    }

    return maxseq;
}

1 个答案:

答案 0 :(得分:4)

你没有从你的startPos前进 - 递归永远不会停止,你很快崩溃了。