Estou tentando descobrir o tamanho de uma 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]); }
O resultado do código acima é 36, o que está incorreto.
Eu tenho alguma outra opção considerando que não sei o tamanho da matriz para começar?
Comentários
- sizeof () é o número de bytes e não o número de elementos. sizeof (array) / sizeof (elemento) fornece o número de elementos.
Resposta
Não, o resultado está correto, você está apenas interpretando-o incorretamente. Se você quiser o número de elementos em uma matriz alocada estaticamente, use:
sizeof(somearray) / sizeof(somearray[0])
Comentários
- Desculpe se postar no tópico errado seguir resposta de Ignacio Vazquez-Abrams, no caso do tamanho de cada String no array ser diferente? como String dias [] = {" Segunda-feira ", " Terça-feira ", " Quarta-feira "}; Obrigado