다음 중 키워드를 사용해야 하는 상황은?

과목: C++

문제 번호: 3467

medium
다음 중 new 키워드를 사용해야 하는 상황은?
// 상황 A: 고정 크기 배열
int scores[10];

// 상황 B: 사용자 입력에 따른 가변 크기
int size;
cin >> size;
// size에 따른 배열 생성 필요

// 상황 C: 지역 변수
int temp = 100;

// 상황 D: 문자열 상수
string name = "John";
A. 상황 A에서만 필요하다
B. 상황 B에서만 필요하다
C. 상황 C와 D에서 필요하다
D. 모든 상황에서 필요하다

정답: B



new는 컴파일 타임에 크기를 알 수 없는 동적 메모리가 필요할 때 사용합니다.

각 상황 분석:

상황 A - new 불필요:
int scores[10];은 고정 크기 배열입니다.
⦁ 컴파일 타임에 크기가 결정되므로 자동 메모리 관리가 됩니다.
⦁ 스택 메모리에 할당되어 scope가 끝나면 자동 해제됩니다.

상황 B - new 필요:
⦁ 사용자 입력에 따라 배열 크기가 런타임에 결정됩니다.
⦁ 컴파일러가 미리 메모리를 할당할 수 없습니다.
⦁ 동적 할당이 반드시 필요한 상황입니다.

상황 C - new 불필요:
int temp = 100;은 일반 지역 변수입니다.
⦁ 자동 저장 기간을 가지므로 컴파일러가 메모리를 관리합니다.

상황 D - new 불필요:
string name = "John";은 일반 객체 생성입니다.
⦁ string 클래스 내부에서 필요한 경우 동적 할당을 처리합니다.

상황 B의 해결책:
int size;
cout << "배열 크기 입력: ";
cin >> size;

int* dynamicArray = new int[size];  // 동적 할당
// 배열 사용...
delete[] dynamicArray;              // 해제

💡 학습 팁

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