Witam.
Zauważyłem ostatnio taki oto kod:
#include <iostream>
#include <conio.h>
using namespace std;
void wypisz(int tab[7][7], int il)
{
int x,y;
for(y = 0; y < il; y++)
{
for(x=0;x<il;x++) cout<<tab[x][y];
cout<<endl;
}
}
int main ()
{
int tab[7][7]= {
{1,2,3,3,6,5,8},
{1,2,3,3,6,5,8},
{1,2,3,3,6,5,8},
{1,2,3,3,6,5,8},
{1,2,3,3,6,5,8},
{1,2,3,3,6,5,8},
{1,2,3,3,6,5,8}};
wypisz(tab,7);
getch();
return 0;
}
I zastanawia mnie jakim cudem to się kompiluje i działa?
Zawsze miałem wpajane, że żeby przekazać do funkcji tablice to przez np. wskaźnik, a nie wpisywać tam deklaracje tablicy.
Czy to ma prawo działać na wszystkich kompilatorach?
Jak inaczej przekazać jako argument dwuwymiarową tablice? (wiem, że można całą tablice zaalokować w pamięci w stercie i użyć wskaźnika, ale czy jest jakiś sposób na tablice statyczną na stosie?)