언제 개발자가 직접 메모리를 관리해야 하나요?

과목: C++

문제 번호: 3463

medium
언제 개발자가 직접 메모리를 관리해야 하나요?
// 상황 A
int score = 100;

// 상황 B  
int size;
cout << "배열 크기를 입력하세요: ";
cin >> size;
// size에 따라 배열을 동적으로 생성하고 싶음

// 상황 C
for (int i = 0; i < 10; i++) {
    int temp = i * 2;
}
A. 상황 A에서만 필요하다
B. 상황 B에서만 필요하다
C. 상황 C에서만 필요하다
D. 모든 상황에서 필요하다

정답: B



실행 시간에 메모리 크기가 결정되는 동적 할당이 필요할 때 수동 메모리 관리가 필요합니다.

각 상황 분석:

상황 A - 자동 관리:
int score = 100;
⦁ 컴파일 타임에 크기가 정해진 일반 변수
⦁ 컴파일러가 자동으로 메모리 할당과 해제를 처리
⦁ 개발자의 수동 관리 불필요

상황 B - 수동 관리 필요:
⦁ 사용자 입력에 따라 배열 크기가 결정됨
⦁ 컴파일 타임에 크기를 알 수 없음
⦁ 동적 메모리 할당(new[])이 필요
⦁ 사용 후 반드시 메모리 해제(delete[]) 필요

상황 C - 자동 관리:
⦁ 반복문 내의 지역 변수
⦁ 각 반복마다 자동으로 생성되고 해제됨
⦁ 컴파일러가 모든 메모리 관리를 담당

💡 학습 팁

이 문제를 포함한 C++ 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.