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