Stack Overflow
발생 이유
- Stack 메모리의 크기는 스레드가 초기화될 때 고정된 크기로 결정
- 사용량을 초과하여 사용한다면 소프트웨어는 undefined behavior 야기
- Stack 영역의 메모리가 지정된 범위를 넘어갈 때 발생
- 한 함수에서 너무 큰 지역 변수를 선언
- 함수를 재귀적으로 무한정 호출하게 되면 발생
해결 방법
- 컴파일러 옵션에서 stack의 영역을 늘려줌
- 함수에서 사용하는 지역 변수의 크기를 줄임
- 지역 변수를 전역변수로 수정
- 재귀함수가 안정적으로 종료할 수 있도록 함