Größe des String-Arrays

Ich versuche, die Größe eines Arrays wie folgt herauszufinden:

 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]); } 

Das Ergebnis des obigen Codes ist 36, was falsch ist.

Habe ich andere Optionen, wenn ich bedenke, dass ich die Größe des Arrays zunächst nicht kenne?

Kommentare

  • sizeof () ist die Anzahl der Bytes und nicht die Anzahl der Elemente. sizeof (Array) / sizeof (Element) gibt die Anzahl der Elemente an.

Antwort

Nein, das Ergebnis ist korrekt, Sie interpretieren es nur falsch. Wenn Sie die Anzahl der Elemente in einem statisch zugewiesenen Array angeben möchten, verwenden Sie:

sizeof(somearray) / sizeof(somearray[0]) 

Kommentare

  • Entschuldigung, wenn ich in einem falschen Thema poste, folge der Antwort von Ignacio Vazquez-Abrams, falls die Größe jedes Strings im Array unterschiedlich ist? wie String Tage [] = {" Montag ", " Dienstag ", " Mittwoch "}; Danke

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.