Jag försöker ta reda på storleken på en matris så här:
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]); }
Resultatet av koden ovan är 36 vilket är felaktigt.
Har jag några andra alternativ med tanke på att jag inte vet storleken på arrayen till att börja med?
Kommentarer
- sizeof () är antalet byte och inte antalet element. sizeof (array) / sizeof (element) ger antalet element.
Svar
Nej, resultatet är korrekt, du tolkar det bara fel. Om du vill ha antalet element i en statiskt allokerad matris använder du:
sizeof(somearray) / sizeof(somearray[0])
Kommentarer
- Ledsen om jag postar i fel ämne följ svaret från Ignacio Vazquez-Abrams, om storleken på varje sträng i array är annorlunda? som strängdagar [] = {" Måndag ", " Tisdag ", " Onsdag "}; Tack