Witam,
jkarczew napisał(a):
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Nie rozumię powyższego ..hmm. Dzielimy wielkość tablicy przez jej adres!? Co to nam daje?
dzięki z góry za wyjaśnienie!
Sorry, że dopiero teraz, wcześniej mnie nie było. To "stary" trick. Chodzi po prostu o wyznaczenie ilości elementów tablicy tab. Operator siezof dla tablic działa w ten sposób, że podaje jej wielkość w bajtach ( dla czepialskich: to pewne uproszczenie, ale na tym etapie wystarczy), więc jeśli w ogólnym przypadku chcesz znać ilość elementów tablicy, to dzielisz sizeof(tab) - bo tyle ona zajmuje w bajtach, przez rozmiar w bajtach 1 elementu tejże tablicy.
Z kolei, sizeof(tab[0]), czy sizeof(tab[k]) w ogólnym przypadku to właśnie ilość bajtów potrzebnych na 1 element naszej tablicy. Ale tab[0] to przecież *tab, stąd zapis jak powyżej.
Twoja tablica jest typu uint8_t, więc w sumie wystarczyło by samo sizeof(tab), ( bo po co dzielić przez 1 ?

) ale odruchowo piszę zawsze to co wyżej.
Pozdrawiam, QuadMan.