Dimensiunea matricei de șiruri

Încerc să aflu dimensiunea unei matrice de acest gen:

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

Rezultatul codului de mai sus este 36, care este incorect.

Am alte opțiuni având în vedere că nu știu dimensiunea matricei pentru început?

Comentarii

  • sizeof () este numărul de octeți și nu numărul de elemente. sizeof (array) / sizeof (element) oferă numărul de elemente.

Răspuns

Nu, rezultatul este corect, doar îl interpretezi incorect. Dacă doriți numărul de elemente dintr-o matrice alocată static utilizați:

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

Comentarii

  • Îmi pare rău dacă postez într-un subiect greșit, urmați răspunsul lui Ignacio Vazquez-Abrams, în cazul în care dimensiunea fiecărui șir din matrice este diferită? like String days [] = {" luni ", " marți ", " miercuri "}; Mulțumesc

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *