Ik probeer de grootte van een array als volgt te achterhalen:
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]); }
Het resultaat van de bovenstaande code is 36, wat onjuist is.
Heb ik nog andere opties, aangezien ik de grootte van de array om te beginnen niet weet?
Opmerkingen
- sizeof () is het aantal bytes en niet het aantal elementen. sizeof (array) / sizeof (element) geeft het aantal elementen.
Antwoord
Nee, het resultaat is correct, je “interpreteert het gewoon verkeerd. Als je het aantal elementen in een statisch toegewezen array wilt, gebruik dan:
sizeof(somearray) / sizeof(somearray[0])
Opmerkingen
- Sorry als ik in het verkeerde onderwerp post, volg het antwoord van Ignacio Vazquez-Abrams, in het geval dat de grootte van elke String in de array anders is? like String days [] = {" maandag ", " dinsdag ", " woensdag "}; Bedankt