반응형

메모리 영역 2

힙(heap)이란 무엇인가?

1. 힙이란? 힙은 동적 메모리 할당에 사용되는 프로세스의 메모리 영역입니다. 크기가 고정되어 함수 호출 및 함수 실행에 사용되는 스택과 달리 힙은 크기가 가변적이며 프로그램 실행 중에 동적으로 메모리를 할당하는 데 사용됩니다. 프로그램이 메모리를 동적으로 할당해야 하는 경우 C의 malloc 또는 C++의 new와 같은 메모리 할당 함수를 호출합니다. 메모리 할당 함수는 힙에서 사용되지 않는 메모리의 연속 블록을 찾고 블록 시작에 대한 포인터를 반환합니다. 그런 다음 프로그램은 개체, 배열 또는 동적으로 할당된 데이터 구조와 같은 데이터를 저장하기 위해 메모리를 사용할 수 있습니다. 힙은 운영 체제의 메모리 관리자가 관리하며 프로그램에서 필요에 따라 크기를 늘리거나 줄일 수 있습니다. 이를 통해 프로그..

공부/자료구조 2023.02.05

스택(stack)이란 무엇인가?

1. 스택이란? 스택은 함수 호출 및 함수 실행과 관련된 데이터를 저장하는 프로세스의 메모리 영역입니다. 프로세스의 각 함수 호출은 함수의 반환 주소뿐만 아니라 함수의 로컬 변수 및 인수를 포함하는 스택에 새 프레임을 만듭니다. 함수가 반환되면 스택의 해당 프레임이 팝되어 함수 호출과 관련된 메모리가 해제됩니다. 스택에는 후입선출(LIFO) 데이터 구조가 있습니다. 즉, 스택에 푸시된 마지막 함수 호출이 함수가 반환될 때 가장 먼저 팝됩니다. 이렇게 하면 함수가 반환될 때 각 함수 호출에 대한 메모리가 자동으로 해제되므로 함수 호출에 사용되는 메모리를 쉽게 관리할 수 있습니다. 스택은 또한 인터럽트 또는 예외가 발생할 때마다 프로그램 카운터 및 레지스터 값을 포함하여 프로세서의 현재 상태를 저장하는 데 ..

공부/자료구조 2023.02.05
반응형