Storlek på strängmatris

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

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *