Я сделал рекурсивную функцию, которая просматривает список и пытается поместить части списка в карту. У меня есть функция, которая проверяет, соответствуют ли они на карте.
Однако, если карта слишком мала, рекурсия должна остановиться и вернуть (0), но это не так. Я ставлю printf("DONE")
непосредственно перед возвратом, и терминал печатает его, но функция все еще работает. Как это возможно? ВЫПОЛНЕНО печатается несколько раз, даже если return (0) ниже
int fillit_algo (t_fill *orilst, t_map *map) {
int i;
int j;
i = 0;
j = 0;
if (orilst == NULL)
return (1);
while (map->map[i] != 0)
{
while (map->map[i][j])
{
if (fill_map(map, orilst, i, j))
{
if((fillit_algo(orilst->next, map)))
return (1);
}
j++;
}
j = 0;
i++;
}
printf ("DONE\n");
return (0);
}