Velikost řetězce String

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *