Невозможно передать 2-мерный массив при использовании рекурсии в C ++ - PullRequest
0 голосов
/ 31 мая 2019

Я видел ответ в stackoverflow о том, как передать 2d-array в функцию. При использовании одного из них было дано 3 или более методов, которые работали просто отлично. Но когда я пытаюсь использовать этот метод в отслеживании, это дает мне ошибку.

Я пытался объявить это глобально, но я хочу научиться использовать его таким образом

#include<bits/stdc++.h>
using namespace std;

int callAgain(int,int);
int call(int,int);

int call(int arr[][5],int n)
{
  if(n==1)
    return 0;

  cout<<"anything";

  callAgain(arr,n-1);     //getting error here.

  return 0;
 }
int callAgain(int arr[][5],int n)
{
  call(arr,n);
  return 0;
 }
int main(){

int arr[5][5];
memset(arr,0,sizeof(arr));
call(arr,5);

return 0;
}

ошибка: неправильное преобразование из int (*) [5] в int [-fpremissive]

1 Ответ

1 голос
/ 31 мая 2019

Ваши предварительные объявления для call и callAgain обещают, что первый аргумент будет int, но затем, когда вы реализуете их, вы говорите, что первый аргумент - это двумерный массив.

Компиляторам не нравится, когда их лгут ...

...