그래서이 함수는 재귀를 사용하여 가장 긴 시퀀스를 찾습니다. increasingSeq.exe에서 0x002871D9에서처리되지 않은 예외 C++ 재귀 오류
처리되지 않은 예외 :가 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;
}
이 작은 코드는 무한 이상으로 실행됩니다. 동일한 시작 위치가 계속 반복됩니다. –
*** 왜 ***가 재귀 함수입니까? – Johnsyweb
아니요, 이것은 재귀 함수가 아닙니다. – user23573