메모리 관리가 제대로 되지 않았을 때 발생할 수 있는 문제는?

과목: C++

문제 번호: 3464

medium
메모리 관리가 제대로 되지 않았을 때 발생할 수 있는 문제는?
// 문제가 있는 코드 예시
void problematicFunction() {
    int* data = new int[1000000];  // 대용량 메모리 할당
    // 작업 수행...
    // delete[] data;  // 이 줄이 누락됨!
}
A. 컴파일 에러만 발생한다
B. 프로그램이 더 빨라진다
C. 성능 저하나 프로그램 충돌이 발생할 수 있다
D. 아무 문제가 없다

정답: C



부적절한 메모리 관리는 메모리 누수, 성능 저하, 프로그램 충돌 등 심각한 문제를 일으킬 수 있습니다.

메모리 관리 실패로 인한 주요 문제들:

1. 메모리 누수(Memory Leak):
⦁ 할당된 메모리를 해제하지 않아 사용 가능한 메모리가 점점 줄어듦
⦁ 예시 코드에서 delete[] data;가 누락된 경우
⦁ 장시간 실행되는 프로그램에서 특히 문제가 됨

2. 성능 저하:
⦁ 불필요한 메모리 사용으로 시스템 리소스 낭비
⦁ 가상 메모리 사용 증가로 디스크 I/O 빈발
⦁ 전체 시스템 속도 저하

3. 프로그램 충돌:
⦁ 시스템 메모리 고갈 시 프로그램 강제 종료
⦁ Out of Memory 오류 발생
⦁ 다른 프로그램들에도 영향을 미칠 수 있음

4. 시스템 불안정:
⦁ 메모리 부족으로 운영체제 자체가 불안정해질 수 있음
⦁ 서버 환경에서는 더욱 치명적

올바른 메모리 관리:
void correctFunction() {
    int* data = new int[1000000];  // 할당
    // 작업 수행...
    delete[] data;                 // 반드시 해제
    data = nullptr;               // 안전을 위한 포인터 초기화
}

💡 학습 팁

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