gpt4 book ai didi

c - 为什么这个功能总是崩溃?

转载 作者:行者123 更新时间:2023-11-30 21:24:21 25 4
gpt4 key购买 nike

谁能告诉我为什么fillpool总是崩溃?也许存在无限递归,但是在哪里呢?

#include <stdio.h>
#include <stdbool.h>

#define N 5

bool IsNotValidIndex(int Row , int Column)
{
if((Row >= N || Row < 0) || (Column >= N || Column < 0))
return true ;
return false ;
}

void fillpool(int row , int column , int picture[N][N])
{
if(IsNotValidIndex(row , column))
return ;
if(picture[row][column] == 0)
return ;
picture[row][column] = 2 ;
fillpool(row + 1 , column , picture) ;
fillpool(row - 1 , column , picture) ;
fillpool(row ,column + 1 , picture) ;
fillpool(row , column -1 , picture) ;
}

最佳答案

您有无限递归,因为您将行/列的值设置为“2”,但随后检查它是否为“0”。因此,您不断地一遍又一遍地将值设置为 2。发生无限递归是因为您为“row+1”调用 fillpool,然后它将为“row-1”调用 fillpool,因此您会得到无限递归(对于 column+1 也会发生同样的事情,但您永远不会到达那里) .

关于c - 为什么这个功能总是崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37768762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com