오늘의 코드카타
표현 가능한 이진트리
- 2진수, DFS
- 분할, 이진트리
- LV3 - 33% (복습 필요)
-> 문제 풀이
오늘의 공부
학습한 강의
오늘의 CS
포인터 vs 레퍼런스
- 포인터
- 어떤 객체의 주소를 저장하는 변수
- nullptr 저장 가능
- 가리키는 대상을 바꿀 수 있음 -> 연산 가능
- 레퍼런스
- 기존 객체의 또 다른 이름
- 선언 시 반드시 유효한 객체를 가리켜야 함
- 한 번 바인딩하면 다른 대상을 가리킬 수 없음 -> 산술 연산 불가능
- 주로 함수 파라미터로
const 키워드와 함께 사용해서 변경하지 못하지만 복사 비용이 발생하지 않게 사용 가능
댕글링 포인터 / 레퍼런스
- 댕글링 포인터 (Dangling Pointer)
- 유효하지 않은(이미 해제되었거나 존재하지 않는) 메모리를 가리키는 포인터
- 보통 어떤 리소스를 가리키는 포인터를 2개 만들었을 때, 이미 다른 포인터가 해당 리소스를 해제한지 모르고 포인터를 참조했을 때 발생
- 스코프를 벗어난 지역 변수 참조, 잘못된 포인터 연산
- 댕글링 레퍼런스 (Dangling Reference)
- 유효하지 않은 객체를 참조하는 레퍼런스
- 스코프를 벗어난 지역 변수 참조, 해제된 메모리 참조
- 한 번 바인딩되면 무조건 객체를 가리켜야 하기 때문에,
nullptr 같은 값으로 탐지를 못해서 탐지하기가 어려움