Jeg prøver å finne ut størrelsen på en matrise som dette:
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 ovenfor er 36 som er feil.
Har jeg noen andre muligheter med tanke på at jeg ikke vet størrelsen på arrayet til å begynne med?
Kommentarer
- sizeof () er antall byte og ikke antall elementer. sizeof (array) / sizeof (element) gir antall elementer.
Svar
Nei, resultatet er riktig, du tolker det bare feil. Hvis du vil ha antall elementer i en statisk tildelt matrise, bruk:
sizeof(somearray) / sizeof(somearray[0])
Kommentarer
- Beklager hvis jeg skriver inn feil emne, følg svaret til Ignacio Vazquez-Abrams, hvis størrelsen på hver streng i matrisen er forskjellig? som strengdager [] = {" Mandag ", " Tirsdag ", " Onsdag "}; Takk