로딩
요청 처리 중입니다...

[C#] 메모리상의 객체

 [C#] 메모리상의 객체

프로그램을 실행할 때, 일부 메모리 공간은 데이터용으로 할당된다. 이 데이터 공간은 놀리적으로 힙과 스택이라는 두 부분으로 나뉜다.

값 형식은 스택에 할당되고 객체는 힙에 존재하게 된다. 값 형식에 따라 스택에 몇 바이트가 설정되는지 결정된다.

예를 들어 int는 4바이트, long은 8바이트이다. 참조 변수를 선언할 때 몇 바이트를 스택에 확보하지만, 이 메모리에는 객체의 데이터가 존재하지 않고 힙에 존재하는 객체의 주소를 담고 있다.

Book book; Book 클래스 참조 변수인 book은 스택에 할당되고, book의 초기 값은 아직 객체를 할당하지 않았기 때문에 null이다. Book book = new Book(); 위의 경우는 Book의 인스턴스를 생성하면서 힙에 저장하고 참조 변수 book에 인스턴스의 주소를 할당한다.

객체는 하나 이상의 참조 변수에서 참조할 수 있다. 예를 들면 다음과 같다.

Book myBook = new Book(); Book yourBook = ...

# c샵 # 메모리 # 메모리할당 # 스택 # 씨샵 # 힙