본문 바로가기

C#

[C#] 값 형식과 참조 형식의 저장 위치

struct MyStruct
{
    public MyClass refType;
}

class MyClass
{
    public int data;
}
  • MyStruct 자체는 값 형식이므로,
    • 지역 변수라면 스택(Stack)
    • 참조 타입 필드 안에 있으면 힙(Heap)
      에 저장됩니다.
  • 하지만 MyStruct 안의 MyClass는 참조 형식이므로,
    • refType 필드에는 힙에 있는 MyClass 객체의 참조(주소) 가 저장됩니다.
    • 실제 MyClass 인스턴스 데이터는 힙(Heap) 에 저장됩니다.

즉,

  • struct 본체 → 값 형식 저장 규칙을 따름
  • 그 안의 class 필드 → 힙에 따로 저장, struct에는 참조만 저장

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

[C#] 정렬 규칙 ,CompareTo함수  (2) 2025.08.15
[C#] 자료구조 정리 표  (2) 2025.08.10
[C#] 구조체를 쓰는 이유  (1) 2025.08.10
[C#] Boxing과 UnBoxing  (3) 2025.07.25
[C#] Garbage Collector  (2) 2025.07.25