Snažím se zjistit velikost pole takto:
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]); }
Výsledek výše uvedeného kódu je 36, což je nesprávné.
Mám nějaké další možnosti vzhledem k tomu, že neznám velikost pole pro začátek?
Komentáře
- sizeof () je počet bajtů, nikoli počet prvků. sizeof (array) / sizeof (element) udává počet prvků.
Odpověď
Ne, výsledek je správný, pouze jej nesprávně interpretujete. Pokud chcete počet prvků ve staticky přiděleném poli, použijte:
sizeof(somearray) / sizeof(somearray[0])
Komentáře
- Omlouvám se, pokud zveřejním nesprávné téma, postupujte podle odpovědi Ignacia Vazquez-Abramse, v případě, že se velikost každého řetězce v poli liší? like String days [] = {" pondělí ", " úterý ", " středa "}; Díky