![article thumbnail image](https://blog.kakaocdn.net/dn/JgQYg/btqGdMAOLDP/2u9Okk4VNGM9glleKSuxD1/img.png)
반응형
1. 문제 현상
비주얼 스튜디오 혹은 웹 IDE로 문제를 푸는데
배열의 크기를 int arr[1000][1000] 같이 할당했을 때, 에러가 나면서 종료되는 경우가 있었을 것이다.
참고로 이러한 에러가 발생할 때 뜨는 팝업은 다음과 같다.
2. 해결 방법
에러에 대한 해결법을 검색해보았는데, 의외로 굉장히 간단한 문제였다.
지역 변수로 배열을 선언하면 힙 영역에 할당되고, 전역 변수는 스택에 할당된다고 한다.
그런데 힙 영역에 할당되는 Default 크기가 매우 작기 때문에 이러한 에러가 발생하는 것이다.
그러므로 다음과 같은 2가지의 해결 방법이 가능하다.
1) 배열을 전역 변수로 설정하기
가장 간단한 해결 방법이고, 문제 풀이 과정이라면 추천하는 방법이다.
2) 비주얼 스튜디오라면, 다음과 같이 '설정'을 통해서 바꿀 수 있다!
위와 같이, 프로젝트 - 구성 속성 - 링커 - 시스템 에서 힙 영역의 크기를 미리 설정할 수 있다.
일반적인 문제 풀이 과정에서 메모리는 256mb면 충분하므로,
1024 * 1024 * 256 = 268435456
으로 미리 설정해둔다.
반응형
'Programming > C│C++' 카테고리의 다른 글
[C++] 최대 힙 (Max Heap) 구현하기 (부제 : Priority Queue) (0) | 2021.03.16 |
---|---|
[C++] 원형 큐 (Circular Queue) 구현하기 (0) | 2021.03.10 |
[C++/STL] 정렬 (sort) 함수 사용하기 (1) | 2020.07.19 |
[C++] string의 구분자(delimiter)를 이용한 파싱 처리하기 (0) | 2020.05.24 |
[C++/STL] 다차원 Vector 복사하기 (0) | 2020.04.16 |