이 글에서는 간단한 C++ 프로그램을 작성하여 시스템의 전체 메모리를 채우는 방법을 알아보겠습니다. 핵심 로직은 매우 단순합니다. 동적 메모리 할당(dynamic memory allocation)을 이용해 정수형 변수를 계속해서 새로 생성하면, 변수가 무한히 만들어지면서 주 메모리(램) 전체가 가득 차게 됩니다.
동적 메모리 할당이란?
C++에서는 new 키워드를 사용하여 실행 중에 필요한 만큼의 메모리 공간을 동적으로 할당할 수 있습니다. 기본적인 문법은 다음과 같습니다.
pointer_var = new data_type
반대로 할당된 메모리 공간을 해제할 때는 delete 키워드를 사용하며, 문법은 아래와 같습니다.
delete pointer_var
주의 사항
경고: 이 프로그램을 실제로 실행하면 시스템 성능이 크게 저하될 수 있습니다. 메모리 공간이 부족해지면서 전체 시스템이 정상적으로 동작하지 않거나 응답하지 않는 상태에 빠질 수 있으므로, 반드시 테스트 환경에서만 실행하는 것이 좋습니다.
예제 코드
#include<iostream>
using namespace std;
main() {
while(true) {
int *var = new int; //동적으로 메모리 할당
}
}위 코드는 무한 루프(while(true)) 안에서 new 연산자로 정수형 변수를 계속 생성합니다. 할당된 포인터를 저장하거나 해제하지 않기 때문에 메모리 누수(memory leak)가 발생하고, 결국 사용 가능한 메모리가 모두 소진됩니다.
실행 결과
화면에는 별도의 출력 결과가 나타나지 않습니다. 작업 관리자(Task Manager)에서 메모리 사용량을 확인하면 메모리가 점점 채워지는 것을 확인할 수 있습니다.
프로그램은 특정한 출력값을 반환하지 않지만, 작업 관리자나 시스템 모니터링 도구를 통해 메모리 사용량이 지속적으로 증가하다가 꽉 차는 과정을 직접 관찰할 수 있습니다.