[c#] 클래스와 메모리 할당

C#에서 클래스는 참조 형식이며 메모리 할당 및 사용 방법이 값 형식과는 조금 다릅니다.

메모리 할당

클래스를 선언하면, 클래스의 인스턴스가 생성될 때 해당 클래스의 메모리 공간이 할당됩니다. 메모리 할당은 직접적으로 할 수 없으며, CLR(Common Language Runtime)이 자동으로 처리합니다.

public class MyClass
{
    // 멤버 변수와 메서드 정의
}

MyClass obj = new MyClass(); // 메모리 할당

위의 예시에서 objMyClass의 인스턴스를 참조하는 참조 변수입니다. new 연산자를 통해 MyClass의 인스턴스를 생성하면, 할당된 힙 메모리의 주소를 obj에 할당합니다.

메모리 해제

C#은 가비지 컬렉션(Garbage Collection)이라는 메모리 관리 메커니즘을 사용해 할당된 메모리를 자동으로 해제합니다. 더 이상 필요로 하지 않는 객체는 CLR이 자동으로 감지하고, 해당 메모리를 해제합니다.

obj = null; // 참조 변수를 null로 설정하여 메모리 해제

위의 코드는 obj가 더 이상 MyClass의 인스턴스를 참조하지 않도록 설정하며, 메모리 해제를 트리거합니다.

결론

C#에서 클래스의 메모리 할당은 CLR에 의해 자동으로 관리되며, 개발자가 직접적으로 메모리를 할당하거나 해제하지 않아도 됩니다. 이는 코드를 간소화하고 메모리 누수를 피할 수 있게 도와줍니다.

참고 자료