UWAGA
Wiem, że w internecie jest dużo pytań o to, jednak niewiele rozumiałem z podanych tam rozwiązań, ponieważ uczę się programować dopiero nieco poniżej roku. Proszę więc o DOKŁADNE, SZCZEGÓŁOWE I CZYTELNE OPISY.
Mój problem jest następujący. W funkcji main() deklaruję tablicę dwuwymiarową o rozmiarach podawanych przez użytkownika w czasie działania programu, oraz wypełniana jest ona także przez niego. Następnie ta tablica przekazywana jest do funkcji typu int razem z jej wymiarami. Niestety, kiedy uruchamiam kompilację programu, otrzymuję następujący błąd:
|29|error: cannot convert 'int (*)[(((unsigned int)(((int)b) + -0x000000001)) + 1)]' to 'int**' for argument '3' to 'int rysuj(int, int, int**)'|
Poniżej wklejam kod programu:
#include <iostream>
using namespace std;
int rysuj(int w, int k, int **tab)
{
for(int i = 0; i < w; ++i)
{
for(int j = 0; j < k; ++j)
cout << tab[i][j] << " ";
cout << endl;
}
}
int main()
{
int a, b;
cin >> a >> b;
int tablica[a][b];
for(int i = 0; i < a; ++i)
{
for(int j = 0; j < b; ++j)
cin >> tablica[i][j];
}
rysuj(a, b, tablica);
}
Prosiłbym o zweryfikowanie kodu i stwierdzenie jaki błąd popełniłem, oraz jak mam go naprawić.