티스토리 뷰

C#

[C#]얕은 복사 vs 깊은 복사

이경로 2023. 7. 5. 00:53

C#의 객체를 복사하는 방식에는 크게 두 가지가 있다. 이번에는 두 복사 방식을 비교해 보겠다.

 

얕은 복사(Shallow Copy)

객체를 복사할 때 참조만 복사하는 것을 얕은 복사라고 한다.

얕은 복사의 경우 이전 객체의 참조만 복사하기 때문에 힙에서 같은 주소를 가리키게 되고,  이전 객체의 값이 변경되면 복사한 객체의 값도 같이 변경된다. 

 

깊은 복사(Deep Copy)

객체를 복사할 때 새로운 힙 공간을 할당해 주는 것을 깊은 복사라고 한다.

m3은 m1과 같은 주소를 가리키지 않고, 힙에서 새로운 공간을 할당받기 때문에 개별적인 객체로 존재하고, m1의 값이 변경되더라도 영향을 받지 않는다.

 

참조 타입, 값 타입, 얕은 복사, 깊은 복사가 정리된 코드를  스택과 힙으로 구성된 그림을 통해 표현해 보았다.

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

[C#]static  (0) 2023.07.05
[C#]생성자  (0) 2023.07.05
[C#]Stack & Heap  (0) 2023.07.05
[C#]값 타입 vs 참조 타입  (0) 2023.07.04
[C#]절차 지향 프로그래밍 vs 객체 지향 프로그래밍  (0) 2023.07.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함