Størrelse på strengarray

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *