정적 할당은 자기 집에 있는 개인 창고(스택)에 물건을 보관하는 것에 비유할 수 있는데, 집 안에 있는 창고니까 크기는 조금 작지만(스택의 크기는 1MB) 집 안에 있어서 물건을 가져오고 보관하는 시간이 짧고 자기 마음대로 물건을 넣을 수 있다는 장점이 있음.
동적 할당은 집 밖에 있는 공용 창고(힙)에 물건을 보관하는 것에 비유할 수 있는데, 공용 창고는 크기가 크기 때문에 큰 물건들도 넣을 수 있다는 장점이 있음.
하지만 공용 창고이기 때문에 물건 출입 기록부를 써야 하는데, 물건을 가져가고 물건을 가져갔다는 기록을 쓰지 않으면 물건을 보관한 장소가 여전히 사용 중인 것으로 표시되어 다른 사람들이 그곳에 물건을 보관할 수 없음.(메모리 누수) 다행히도 JAVA 등에서는 창고 관리자가 있어 물건을 가져가면 자동으로 나갔다는 기록을 써 주기 때문에 이런 일을 걱정하지 않아도 됨.(GC)
마지막으로 C/C++등에서는 각각의 사람들이 어느 창고에 물건을 넣을 지 정할 수 있지만, 자바 등에서는 매우 작은 물건만 개인 창고에 넣을 수 있고 다른 것들은 공공 창고에 보관해야 함.
이 비유 어떠냐
- dc official App
스택이랑 힙에서 메모리를 할당받는 방식이 다르단걸 반영 못해서
비유니까 봐주세요 - dc App
실례가 안된다면 어떤 차이점이 있는지 여쭤봐도 괜찮을까요? 배워가고 있는 단계라 궁금합니다
왜 다?른 사람이 물건을 보관할?수 없죠?
공용 - dc App
물건을 가져갔다는 기록 자체는 남는데
? - dc App
해제하는걸 그렇게 표현한건가
마즘 - dc App
정적할당 = 한남소추 동적할당 = 양남대추
(...) - dc App
난 이 갤에서 포인터나 스택 힙 단골 떡밥 도는게 이해가 안감 이 갤까지 굳이 기어올 사람중에 그걸 모르는 사람이 없을텐데 자꾸 설명하려함 - dc App
심심해서 - dc App
해당 댓글은 삭제되었습니다.
ㅎㅎ - dc App
다행히도 JAVA 등에서는 창고 관리자가 있어 물건을 가져가면 자동으로 나갔다는 기록을 써 주기 때문에 이런 일을 걱정하지 않아도 됨.(GC) 매번 전수조사해서 확인하는게 아니라..?
정적 할당이 stack만 포함함? static은? static은 그래도 좀 큰걸로 알고있는데
고려를 못 했네 - dc App