Merkkijonorakenteen koko

Yritän selvittää tällaisen taulukon koon:

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

Yllä olevan koodin tulos on virheellinen 36.

Onko minulla muita vaihtoehtoja, koska en tiedä aluksi taulukon kokoa?

Kommentit

  • sizeof () on tavujen lukumäärä eikä elementtien lukumäärä. sizeof (matriisi) / sizeof (elementti) antaa elementtien lukumäärän.

Vastaa

Ei, tulos on oikea, tulkitset vain väärin. Jos haluat elementtien määrän staattisesti varatussa taulukossa:

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

Kommentit

  • Anteeksi, jos kirjoitan väärään aiheeseen, seuraa Ignacio Vazquez-Abramsin vastausta, jos jokaisen jonon koko matriisissa on erilainen? kuten jousipäivät [] = {" maanantai ", " tiistai ", " keskiviikko "}; Kiitos

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *