int main() {
int *a = new int(5);
int *b = new int(3);
a = b;
delete a;
delete b;
}
얕은 복사. 참조만 복사한거임
위에서 문제는?
포인터 a에 적혀있던 주소값이 b가 가지고있던 주소값으로 변하게됨.
그러면 원래 들고있던 주소는 잊혀지게됨. 해제도 안된 상태에서 접근이 끊어지게된거야.
a랑 b가 똑같은 메모리공간 가리키고있어. delete a했을때 그 주소의 값이 해제됨. 그러면 나머지 delete b를 봤더니 해제가 되어있는 메모리를 또 해제하라그래..런타임에러가 뜨게됨.

int main() {
int *a = new int(5);
int *b = new int(3);
*a = *b;
delete a;
delete b;
}
깊은 복사. 값을 복사한거임. 실제로 가리키고있는 값을 바꿔준거다!