반응형

스택 오버플로우 2

스택 오버플로우(Stack Overflow)란?

1. 스택 오버 플로우(Stack Overflow)란? 스택 오버플로우는 프로그램이 사용 가능한 것보다 더 많은 스택 메모리를 사용하려고 할 때 발생하는 일반적인 유형의 소프트웨어 오류입니다. 스택은 함수 호출 및 함수 실행과 관련된 데이터를 저장하는 프로세스의 메모리 영역입니다. 각 함수 호출은 함수의 로컬 변수, 인수 및 함수의 반환 주소를 보유하는 스택에 새 프레임을 만듭니다. 프로그램이 함수 호출과 관련된 메모리를 해제하지 않고 너무 많은 함수 호출을 수행하면 스택의 메모리가 부족하여 스택 오버플로우가 발생할 수 있습니다. 이는 함수가 너무 깊게 재귀하여 스택이 사용 가능한 것보다 더 많은 메모리를 소비할 때 발생할 수 있습니다. 단일 함수에 많은 수의 로컬 변수가 있는 경우와 같이 많은 양의 데..

공부/기타 2023.02.05

프로그램 실행 순서와 메모리 구조

메모리 영역에 얘기하기 전, 프로그램이 어떤식으로 실행되는지 과정을 살펴 보겠습니다. 번호를 통해 프로그램의 실행 순서가 어떠한 과정으로 진행되는 지 나타내보았습니다. 프로그램이 실행되면 컴퓨터의 주 메모리(RAM)에 로드되고 일정량의 메모리 공간이 할당됩니다. 이 메모리 공간은 프로그램이 실행되는 동안 프로그램의 명령과 데이터를 저장하는 데 사용됩니다. 프로그램에 할당되는 메모리 공간의 양은 프로그램의 크기와 사용 가능한 메모리 양에 따라 달라질 수 있습니다. 예를 들어 계산기를 키는 것과, 롤을 키는 것은 프로그램의 크기가 서로 다르기 때문에 메모리 공간의 양은 이에 따라 달라집니다. 프로그램이 처음 로드될 때 운영 체제(OS)는 일반적으로 인접한 메모리 블록을 프로그램에 할당합니다. 이 메모리 블록..

공부/CS 2023.01.08
반응형