개발하는 동글 :]

Swift 의 Class와 Struct 메모리 저장 위치는 어딜까? 본문

카테고리 없음

Swift 의 Class와 Struct 메모리 저장 위치는 어딜까?

동글하다 2024. 4. 16. 01:04

1. 메모리의 주소를 확인할 수 있는 메서드 생성

2. 간단한 Class와 Struct 생성

3. Struct를 프로퍼티로 가진 Class와 Class를 프로퍼티로 가진 Struct 생성

4. Class(Struct)?

- 클래스를 생성한 인스턴스와 그것을 복사한 인스턴스의 메모리 주소는 다른 것을 확인 할 수 있었다. 이것은 내가 알고 있었던 사실과는 조금 달랐다 나는 막연히 클래스 자체를 인스턴스화 하여도 참조 타입이기에 동일한 메모리 주소를 가지는 줄 알았지만 클래스 내부의 프로퍼티들이 동일한 메모리 주소를 가지는 것을 알 수 있었다.

- Class 인스턴스 자체는 stack에 올라가 복사한 Class와 서로 다른 메모리 주소를 가지고 있고 내부의 프로퍼티는 클래스의 특징인 참조형식이기에 동일한 주소를 가지고 있다.

5. Struct(Class)?

- 구조체 인스턴스 또 한 다른 메모리 주소값을 가지고 있고 내부의 클래스 인스턴스는 특징인 참조타입에 따라 동일한 메모리 주소를 가지고 있다 그리고 일반적인 구조체 내부의 변수는 구조체의 특성을 따라 값을 복사하고 있다.

- Struct 인스턴스 자체는 stack에 올라가 복사한 struct와 서로 다른 메모리 주소를 가지며 내부의 프로퍼티는 class의 특성을 따라 참조 타입이기에 메모리 주소가 동일하다.