스택 오버플로우 와 힙 오버 플로우

BackEnd_Ash.log·2023년 7월 24일
0

ComputerScience

목록 보기
8/8

"스택 오버플로우"와 "힙 오버플로우"는 컴퓨터 프로그래밍에서 메모리 할당과 관련된 용어입니다.

스택 오버플로우는 스택이라는 메모리 영역에서 발생하는 현상으로, 이 영역은 함수 호출과 로컬 변수 저장 등에 사용됩니다. 스택은 일반적으로 고정된 크기를 가지며, 그 크기를 초과할 때 스택 오버플로우 오류가 발생합니다. 이 오류는 주로 재귀 호출에서 발생하는 경우가 많습니다. 재귀 호출이 너무 많이 이루어지면 스택 메모리가 고갈되어 스택 오버플로우 오류가 발생합니다.

반면에 힙 오버플로우는 이론적으로는 발생할 수 있지만, 실제로는 거의 발생하지 않습니다. 힙은 동적 메모리 할당에 사용되는 영역으로, 프로그램이 실행되는 동안 필요한 만큼 메모리를 할당하고 해제할 수 있습니다. 힙 오버플로우는 이 힙 메모리가 완전히 소진될 때 발생합니다. 하지만 실제 시스템에서는 운영 체제가 메모리 관리를 담당하고 있으므로, 힙 메모리가 부족해지면 운영 체제가 추가 메모리를 제공하거나 프로그램에 메모리 부족 상태를 알리는 등의 방식으로 대응합니다. 따라서 힙 오버플로우는 거의 발생하지 않습니다.

그러나 프로그래머가 힙 메모리를 관리하는 방법에 따라, 메모리 누수 등의 문제가 발생할 수 있습니다. 메모리 누수는 프로그램이 필요 이상으로 메모리를 소비하여 시스템의 메모리를 고갈시키는 현상을 말합니다. 이는 결국 시스템 전체의 성능을 저하시키고, 극단적인 경우에는 프로그램이나 시스템이 중단될 수 있습니다.

profile
꾸준함이란 ... ?

0개의 댓글