`Rc<T>`, 참조 카운트 스마트 포인터

대부분의 경우에서 소유권은 명확합니다. 즉 어떤 변수가 주어진 값을 소유하는지 정확히 압니다.

Rc를 사용해 여러 소유자가 같은 값을 공유할 때 참조 카운트가 어떻게 늘고 줄어드는지 확인합니다.

판단 기준

값을 여러 곳에서 읽어야 할 때

예제 14-18의 List는 같은 꼬리를 여러 리스트가 공유합니다. 이때 소유권을 하나로 고정하지 않고 참조 카운트로 생존 여부를 판단합니다.

1

여러 소유자

`a`, `b`, `c`가 같은 리스트 꼬리를 읽어야 하므로 단일 소유권만으로는 구조를 표현하기 어렵습니다.

2

참조 카운트

`Rc::clone`은 값을 복사하지 않고 같은 값을 가리키는 소유 핸들을 하나 늘립니다.

3

마지막 해제

모든 소유 핸들이 사라져 카운트가 0이 될 때만 값이 메모리에서 정리됩니다.