Estoy tratando de averiguar el tamaño de una matriz como esta:
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]); }
El resultado del código anterior es 36, que es incorrecto.
¿Tengo otras opciones considerando que no sé el tamaño de la matriz para empezar?
Comentarios
- sizeof () es el número de bytes y no el número de elementos. sizeof (matriz) / sizeof (elemento) da el número de elementos.
Responder
No, el resultado es correcto, simplemente lo está interpretando incorrectamente. Si desea la cantidad de elementos en una matriz asignada estáticamente, use:
sizeof(somearray) / sizeof(somearray[0])
Comentarios
- Lo siento si publico en el tema equivocado, siga la respuesta de Ignacio Vazquez-Abrams, en caso de que el tamaño de cada cadena en la matriz sea diferente. como String days [] = {" lunes ", " martes ", " miércoles "}; Gracias