0

だから私は、再帰を使用して最長の数列を見つけるこの関数を持っています。しかし、実行するたびに、次のエラー メッセージが表示されます。

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;
}
4

1 に答える 1

4

あなたはあなたから進んでいませんstartPos-再帰は決して止まらず、すぐにスタックをクラッシュさせます.

于 2013-03-27T06:59:18.047 に答える