다음과 같은 배열의 크기를 찾으려고합니다.
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입니다.
처음에 배열의 크기를 모르는 것을 고려할 때 다른 옵션이 있습니까?
Comments
- sizeof ()는 요소 수가 아니라 바이트 수입니다. sizeof (array) / sizeof (element)는 요소 수를 나타냅니다.
답변
아니요, 결과는 정확합니다. 단지 잘못 해석하는 것입니다. 정적으로 할당 된 배열의 요소 수를 원하는 경우 다음을 사용하십시오.
sizeof(somearray) / sizeof(somearray[0])
주석
- 배열의 각 문자열 크기가 다른 경우 Ignacio Vazquez-Abrams의 답변을 따라 잘못된 주제로 게시하면 죄송합니까? like String days [] = {" 월요일 ", " 화요일 ", " 수요일 "}; 감사합니다