만약 배열 크기를 지정하지 않고 문자열을 저장하면 어떻게 될까요? 배열 크기를 비워 둔 채로 문자열을 저장한 후 배열의 값과 배열 크기를 확인해 보겠습니다. 배열 크기는 sizeof로 알아낼 수 있습니다. sizeof 연산자는 () 안에 넣은 배열, 변수, 자료형 등이 메모리 공간을 얼마나 차지하는지 바이트 단위로 알려 줍니다. 참고로 메모리에서 알파벳과 숫자는 1바이트를 차지합니다.
따라서 sizeof(str)라고 작성하면 str 배열의 크기를 알 수 있습니다. 6글자를 저장했으니 6이 나올까요? 실행해 봅시다.
6.4.1 배열에문자열저장하기.c
int main(void) {
char str[] = "coding";
printf("%s\n", str);
printf("%d\n", sizeof(str));
return 0;
}
실행결과 |
coding 7 |