다음 코드에서 어떤 문제가 발생할까요?
다음 코드에서 어떤 문제가 발생할까요?
string cars[3] = {"Volvo", "BMW", "Ford"};
cars[3] = "Tesla";
cout << cars[3];
정답: D
이 코드는 배열의 고정 크기 특성을 위반하는 문제를 보여줍니다.
문제 분석:
⦁
cars[3]
은 배열 크기(3)를 벗어난 접근입니다.⦁ 유효한 인덱스: 0, 1, 2 (총 3개)
⦁ 인덱스 3은 배열 범위를 초과합니다.
발생 가능한 문제들:
⦁ 다른 메모리 영역을 덮어쓸 수 있습니다.
⦁ 프로그램이 예기치 않게 종료될 수 있습니다.
⦁ 디버깅하기 어려운 버그가 발생할 수 있습니다.
⦁ 보안 취약점이 생길 수 있습니다.
C++ 배열의 특징:
⦁ 고정 크기: 생성 후 크기 변경 불가능
⦁ 범위 검사 없음: 컴파일러가 범위 초과를 자동으로 막지 않음
⦁ 정의되지 않은 동작: 범위 초과 시 예측 불가능한 결과
해결책:
⦁ 벡터(vector) 사용으로 동적 크기 관리 가능
💡 학습 팁
이 문제를 포함한 C++ 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.