다음 코드에서 컴파일 에러가 발생하는 이유는 무엇인가요?
다음 코드에서 컴파일 에러가 발생하는 이유는 무엇인가요?
string cars[];
cars[0] = "Volvo";
cars[1] = "BMW";
정답: C
배열을 선언할 때 크기를 생략하려면 반드시 초기화 값이 있어야 합니다.
에러 발생 이유:
⦁
string cars[];
는 크기도 없고 초기값도 없습니다.⦁ 컴파일러가 배열을 위해 얼마나 메모리를 할당해야 할지 알 수 없습니다.
⦁ C++에서는 컴파일 시점에 배열 크기가 결정되어야 합니다.
올바른 해결 방법:
// 방법 1: 크기 명시
string cars[2];
cars[0] = "Volvo";
cars[1] = "BMW";
// 방법 2: 초기화와 함께 크기 생략
string cars[] = {"Volvo", "BMW"};
💡 학습 팁
이 문제를 포함한 C++ 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.