본문으로 바로가기

[C#] 스택과 힙

category Program/C# 2019. 3. 18. 14:03

값/참조 형식의 차이점을 이해하려면 ? 반드시 스택(Stack)힙(Heap)을 이해할 필요가 있다. 윈도우 프로그램은 기본적으로 하나의 스레드를 갖는다. 그리고 개별 스레드마다 전용으로 사용할 수 있는 저장소가 메모리에 할당되는데 그 영역을 스택이라고 한다. 반면 힙은 프로그램에서 필요에 의해 메모리를 사용하겠다고 요청했을 때 사용할수 있는 저장소다. 특별히 닷넷에서는 CLR이 직접 프로그램에서 사용될 힙을 관리한다. 개발자 입장에서 스택은 변수를 선언하는 것 자체만으로 스택 내의 특정 메모리 영역을 사용할 수 있게 C# 컴파일러에 의해 자동 할당 및 해제된다. 따라서 스택의 메모리를 할당하고 해제하는 것은 걱정하지 않아도 된다. 하지만 힙에 메모리를 할당하는 것은 개발자가 명시적으로 요청한 것이므로 해제과정이 필요하다. C# 프로그램이 동작하는 관리 환경의 경우 개발자는 오직 할당만 하고 해제는 관리 환경 내의 특정 구성 요소가 담당한다. 그것을 가비지 수집가(GC)라고 한다.


ref : (책) 시작하세요! C# 7.1 프로그래밍 기본 문법부터 실전 예제까지 내용 참조


'Program > C#' 카테고리의 다른 글

[C#] Visual Studio 책갈피 단축키  (0) 2020.12.08
[C#] const 와 readonly 상수  (0) 2019.05.30
[C#] Object  (0) 2019.01.30
[C#] 정적 메서드~as, is 연산자  (0) 2019.01.30
[C#] .NET 용어 요약 #2  (0) 2019.01.29