Ilyen tömb méretét próbálom megtudni:
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]); }
A fenti kód eredménye 36, ami helytelen.
Van-e más lehetőségem, tekintve, hogy nem tudom a tömb méretét?
Megjegyzések
- A sizeof () a bájtok száma, nem pedig az elemek száma. A sizeof (tömb) / sizeof (elem) adja az elemek számát.
Válasz
Nem, az eredmény helyes, csak rosszul értelmezi. Ha statikusan kiosztott tömbben szeretné használni az elemek számát:
sizeof(somearray) / sizeof(somearray[0])
Megjegyzések
- Sajnálom, ha rossz témában írok, kövesse Ignacio Vazquez-Abrams válaszát, ha az egyes karakterláncok mérete tömbben eltér? mint a húrnapok [] = {" hétfő ", " kedd ", " szerda "}; Köszönet