Stomp Allocator
CPP2025. 4. 4. 16:35Stomp Allocator

class A{public: int hp = 0;};int main(){ A* a = new A(); delete a; a->hp = 200;}위 코드를 보자 분명 delete를 하고 a = nullptr로 밀어준다음에 nullptr확인을 안하고 해제된 메모리에 값을 쓰고 있다.분명히 잘못된 코드인데 때에 따라서 크래쉬가 날 수도 있고 안 날 수도 있다. delete키워드가 소멸자를 호출해주고 메모리를 해제하는 것은 맞지만 메모리 해제를 바로 os에게 요청하지 않기때문이다.delete는 객체가 차지했던 메모리 블록을 힙에 반환한다. 여기서 중요한 부분은 메모리 블록을 운영체제에게 즉시 반환하는게 아니라 힙 관리에게 반환한다는 것이다.힙 관리자는 반환된 메모리 블록을 재사용가능한 공간으로 관리한다. 따라서..

[CS] 논리주소와 물리주소
CS2023. 8. 7. 22:13[CS] 논리주소와 물리주소

[06-2] 이번글은 메모리의 논리주소와 물리주소에 대한글입니다. 먼저 메모리란 무엇인지에 대해서 알아보도록 하겠습니다! 주기억 장치의 종류로 크게 RAM, ROM가 있습니다. 이중에서도 "메모리"라는 용어는 보통 RAM을 가르키는 단어입니다. 그래서 RAM(메모리)에 대해서 살펴보도록 하겠습니다!!ㅎㅎ 참고로 ROM에 대한 부분은 https://information-factory.tistory.com/270 RAM(램)과 ROM(롬) 차이점 쉽게 이해하기! RAM 이란? ROM 이란? 무엇일까? RAM은 우리가 흔하게 보는 부품입니다. 바로 삼성전자와 SK하이닉스에서 세계에서 제일 잘 만드는 부품으로 "초록색의 긴 막대기 같은 부품"입니다. RAM의 약어는 Random information-factor..

image