언제 개발자가 직접 메모리를 관리해야 하나요?
언제 개발자가 직접 메모리를 관리해야 하나요?
// 상황 A
int score = 100;
// 상황 B
int size;
cout << "배열 크기를 입력하세요: ";
cin >> size;
// size에 따라 배열을 동적으로 생성하고 싶음
// 상황 C
for (int i = 0; i < 10; i++) {
int temp = i * 2;
}
정답: B
실행 시간에 메모리 크기가 결정되는 동적 할당이 필요할 때 수동 메모리 관리가 필요합니다.
각 상황 분석:
상황 A - 자동 관리:
⦁
int score = 100;
⦁ 컴파일 타임에 크기가 정해진 일반 변수
⦁ 컴파일러가 자동으로 메모리 할당과 해제를 처리
⦁ 개발자의 수동 관리 불필요
상황 B - 수동 관리 필요:
⦁ 사용자 입력에 따라 배열 크기가 결정됨
⦁ 컴파일 타임에 크기를 알 수 없음
⦁ 동적 메모리 할당(
new[]
)이 필요⦁ 사용 후 반드시 메모리 해제(
delete[]
) 필요상황 C - 자동 관리:
⦁ 반복문 내의 지역 변수
⦁ 각 반복마다 자동으로 생성되고 해제됨
⦁ 컴파일러가 모든 메모리 관리를 담당
💡 학습 팁
이 문제를 포함한 C++ 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.