Próbuję sprawdzić rozmiar tablicy takiej jak ta:
String days[3] = { "Mon", "Tue", "Wed" }; Serial.printf("Size of array: %2d\n", sizeof(days)); for (int i = 0; i < sizeof(days); i++) { Serial.print(days[i]); }
Wynik powyższego kodu to 36, co jest niepoprawne.
Czy mam inne opcje, biorąc pod uwagę, że nie znam rozmiaru tablicy?
Komentarze
- sizeof () to liczba bajtów, a nie liczba elementów. sizeof (tablica) / sizeof (element) podaje liczbę elementów.
Odpowiedź
Nie, wynik jest poprawny, po prostu niepoprawnie go interpretujesz. Jeśli chcesz określić liczbę elementów w tablicy alokowanej statycznie, użyj:
sizeof(somearray) / sizeof(somearray[0])
Komentarze
- Przepraszam, jeśli piszę w złym temacie, podążaj za odpowiedzią Ignacio Vazquez-Abrams, w przypadku, gdy rozmiar każdego ciągu w tablicy jest inny? jak String days [] = {" poniedziałek ", " wtorek ", " środa "}; Dzięki