文字列配列のサイズ

次のような配列のサイズを調べようとしています:

 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]); } 

上記のコードの結果は36ですが、これは正しくありません。

そもそも配列のサイズがわからないことを考慮して、他にオプションはありますか?

コメント

  • sizeof()はバイト数であり、要素の数ではありません。sizeof(array)/ sizeof(element)は要素の数を示します。

回答

いいえ、結果は正しいです。あなたはそれを誤って解釈しているだけです。静的に割り当てられた配列の要素数が必要な場合は、次を使用します。

sizeof(somearray) / sizeof(somearray[0]) 

コメント

  • 間違ったトピックで投稿した場合、配列内の各文字列のサイズが異なる場合は、Ignacio Vazquez-Abramsの回答に従ってください。文字列の日数のように[] = {"月曜日"、"火曜日"、"水曜日"};ありがとう

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です