1. 레퍼런스를 포인터로 변환하는게 unsafe가 아닌 이유는?2. std::mem::replace가 unsafe가 아닌 이유는?3. std::mem::forget이 unsafe가 아닌 이유는?정답은 17시에 발표
러스트 하나도 모르는데 1번만 잔머리를 굴려보면 혹시 포인터를 역참조하는게 unsafe일까요?
네 똑똑하시네요
포인터를 뭔가에 써먹지 않으면 위험할 일이 생길 경우가 도저히 생각히 안 나네요
2번은 같은 타입의 데이터를 교체하는 거기 때문에 언세이프일 필요가 없음
3번은 드랍을 호출 안하는 거지 스택메모리는 정리해줌
스택정리 안해주는건 unsafe를 떠나서 디자인이 맛간건데
1번은 좀 애매한데, 레퍼런스는 유효한 데이터의 위치를 가지고 있기 때문에 포인터로 변환하는게 언세이프일 필요가 없음. 반대로 포인터이서 레퍼런스로 변환하는 건 널메모리일 수도 있으니까 언세이프한 거임