kui-vault/06.Archive/aimSystems/Computer Science/Heap.md

8 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Heap Area
힙 메모리(Heap Memory)는 프로그램에서 동적으로 할당된 메모리를 관리하는 데 사용되는 영역입니다. 프로그램이 실행될 때, 운영체제는 프로그램에 메모리 공간을 할당하며, 이 공간은 스택(Stack)과 힙(Heap)으로 구성됩니다. 스택은 지역 변수와 함수 호출 시 생성되는 변수들을 저장하는 영역이고, 힙은 동적으로 할당되는 메모리를 저장하는 영역입니다.
힙 메모리는 프로그램에서 필요한 만큼의 메모리를 동적으로 할당하여 사용합니다. 이러한 동적 할당은 프로그램에서 사용되는 데이터의 크기를 미리 예측하기 어려울 때 유용합니다.  메모리는 일반적으로 malloc(), calloc(), realloc()과 같은 함수를 사용하여 할당됩니다. 이러한 함수는 메모리의 크기를 결정하고, 메모리 주소를 반환합니다. 반환된 메모리 주소는 포인터 변수에 저장되며, 이 포인터 변수를 통해 할당된 메모리에 접근할 수 있습니다.
힙 메모리는 스택과 달리, 메모리 블록을 계속해서 할당하거나 해제할 수 있기 때문에, 메모리 누수(Memory Leak)가 발생하기 쉽습니다. 메모리 누수란, 할당된 메모리를 해제하지 않은 채로 프로그램이 종료되거나, 해당 메모리를 더 이상 사용하지 않을 때 발생합니다. 메모리 누수는 시스템의 성능에 영향을 미치며, 심각한 경우 시스템 충돌을 일으킬 수 있습니다. 따라서, 동적으로 할당된 메모리를 사용하는 프로그램에서는 할당된 메모리를 적절한 방법으로 해제하여 메모리 누수를 방지해야 합니다.
힙 메모리는 운영체제와 프로그램 사이의 중간 영역으로써, 프로그래머가 메모리 관리를 주도적으로 수행할 수 있는 유연성을 제공합니다. 그러나 이러한 유연성은 부적절한 사용으로 인해 메모리 누수와 같은 문제를 발생시킬 수 있으므로, 프로그래머는 힙 메모리를 사용할 때 주의를 기울여야 합니다.