Witam,
mam pytanie do tego co ponizej, jak to jest , że to działa - chodzi mi o przekazanie tablicy do funkcji. To co poniżej to była moja odpowiedz na zadanie na policzenie z wykorzystaniem funkcji sumy pod główną przekątna w statycznej tablicy dowolnie kwadratowej. Na kolokwium się śpieszyłem wiec na łapucapu napisałem co napisałem. Prawie działało. W domu uwzględniłem, że pierwszym indeksem tablicy jest 0 a nie 1 :) i zadziałało. Patrze na to jednak teraz i nie rozumiem, jak to działa - nie zadeklarowałem wskaźnika wiec rozumiem, że tablica jest parametrem formalnym. A w takiej systuacji, powiniem przy przekazaniu do funkcji podac przynajmnie drugi wymiar? I czemu działa przekazanie do funkcji przy użyć operatora wyłuskania a nie wskazania adresu?
int licz(int tab,int ile){
int i=0,w,n=1,k=1,suma=0;
w=sqrt(float(ile));
while (i<ile){
if(i==(wn+k)-1){
n++;
k++;
suma=suma+tab[i];}
i++;}
return suma;
}
int _tmain(int argc, _TCHAR* argv[])
{
const int w=4,k=4;
int a,tab[w][k],wynik;
srand(NULL);
a=rand()%10;
for (int i=0; i<w; i++)
for (int j=0;j<k;j++)
tab[i][j]=rand()%10;
wynik=licz(*tab,w*k);
cout<<"suma = "<<wynik;
_getch();
return 0;
}
Z gory dziekuje i pozdrawiam,
Tomek