Tak jak w temacie, dokładnie chodzi o tablice dwuwymiarowe.
W pliku foo.h mam tylko deklaracje funkcji pokaz:
extern bool pokaz_tablice(const int**,unsigned int, unsigned int);
W pliku foo.cpp deklaracja:
bool pokaz_tablice(const int** tab, unsigned int szer, unsigned int wys)
{
if(tab==NULL) return 0;
int *wsk;
//tab[1]=wsk;
//tab[3][3]=124;
for(int i=0; i<wys; i++)
{
for(int j=0; j<szer; j++)
cout<<tab[i][j]<<" ";
cout<<endl;
}
return 1;
}
Odwołanie z main:
int **duza=NULL;
tworz_tablice(duza,10,10);
pokaz_tablice(const_cast<const int**>(duza),10,10);
niszcz_tablice(duza,10,10);
Z tym żeby jawnie zapobiec zmianie wartości sobie poradziłem, ale zawsze da się podstawić jakiś wskaźnik pod dowolną komórkę tablicy.
Próbowałem dodać do funkcji const* i rzutować jako const int** const* ale to nie wypaliło. Dodam, że z niezmienności tablicy korzysta nie tylko funkcja pokaz_tablice.