Jeg prøver at finde ud af størrelsen på en array som denne:
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 af ovenstående kode er 36, hvilket er forkert.
Har jeg andre muligheder i betragtning af at jeg ikke kender størrelsen på arrayet til at begynde med?
Kommentarer
- sizeof () er antallet af byte og ikke antallet af elementer. sizeof (array) / sizeof (element) giver antallet af elementer.
Svar
Nej, resultatet er korrekt, du fortolker det bare forkert. Hvis du vil have antallet af elementer i et statisk tildelt array, skal du bruge:
sizeof(somearray) / sizeof(somearray[0])
Kommentarer
- Beklager, hvis jeg skriver i forkert emne, følg svaret fra Ignacio Vazquez-Abrams, hvis størrelsen på hver streng i array er forskellig? som strengdage [] = {" Mandag ", " Tirsdag ", " Onsdag "}; Tak