8장 정리 (재상)

  1. 참조(포인터)는 데이터의 존재(메모리 주소)를 가리킨다. 참조가 데이터보다 오래 살아남으면 dangling pointer (해제되어 메모리 권한을 초과하거나, 재할당된 잘못된 값을 가리키거나)
  1. 기존 참조는 말하자면 raw pointer *const T: unmutable pointer / *mut T: mutable pointer raw pointer를 usize로 변환하면 실제 가상주소 값을 얻어올 수도 있다.
  1. dereference: *a 주소를 가리키는 값에서 그 주소의 값으로 해석하는 것 (예시 개더럽다 저런거 누가 쓰니…)
  1. 멤버 변수 접근은 golang와 같은 방식으로 . 으로 한다. C/C++처럼 포인터 여부에 따라 . 이냐 -> 냐 구분하지 않아도 된다.
  1. 스마트 포인터: Deref DerefMut Drop trait을 구현함. struct의 deref, 멤버 접근에 대한 코드 후킹
  1. raw pointer를 deref로 변환할 때 위험해서 unsafe가 필요… 이게 뭔소리여…