< 참고글 >
https://boogalle91-cs.tistory.com/16
C/C++ 배열 사이즈 관련
배열의 사이즈는 보통 int 기준 100000, 즉 10^5이 최대인것 같다. int a[1000000] 처럼 0을 하나 더 붙이는 순간 SEGMENTATION FAULT 발생. 즉 범위를 벗어난 메모리를 참조하겠다는 것. 하지만 vector를 사용해
boogalle91-cs.tistory.com
https://www.acmicpc.net/board/view/34836
글 읽기 - 배열 저장 질문입니다.
댓글을 작성하려면 로그인해야 합니다.
www.acmicpc.net
main함수 안에 int nums[1000000]을 선언했더니 프로그램이 그냥 종료되어서 찾아봤더니...
스택에 올릴 수 있는 int형 배열의 최대크기는 100000라고 한다!
이 범위를 넘으면 segment fault가 발생한다.
< 해결 방법 >
1. 전역 변수로 선언한다.
=> 스택은 임시메모리니까 할당할 수 있는 크기가 작음, 지역변수는 스택영역에 올라가고 전역변수는 데이터영역에 올라가니까 데이터영역을 사용해서 해결!
2. 동적할당한다. => 힙 영역에 올라가니까
3. vector를 사용한다.
'CS > C++' 카테고리의 다른 글
| C++로 덱 구현 (0) | 2023.07.11 |
|---|---|
| C++로 큐 구현 (0) | 2023.07.11 |
| C++로 스택 구현 / STL stack (0) | 2023.07.11 |
| vector 관련 정리 (0) | 2023.07.10 |
| C++ 입력받기 (1) | 2023.07.09 |