메모리 동적 할당
C++ 동적할당
메모리란..
메모리의 실체는 램이다. 실제 물리적인 공간은 램이고 운영체제가 이 램을 활용하는 가상공간이 메모리다. 메모리는 4가지 영역으로 구성된다. 용어가 낯설게 느껴져도 괜찮다. 스택, 힙, 자유 공간, 등이 있다.
정적 할당된 메모리는 스택에 위치한 메모리인데, 이 메모리는 프로그래머가 신경쓸 필요가 없다. 여기에 할당된 메모리는 프로그램이 끝나면 다시 자유공간으로 돌아가는 메모리이기 때문이다.
프로그래머의 메모리 사용에 대한 자유도를 주어 상황에 맞게 유용하게 사용하기위해서 동적 할당이 나왔다. 동적 할당이란 프로그래머가 직접 자유 공간 메모리를 사용하는 것을 말한다. 자유공간 메모리를 힙에 가져오는 것이 동적 할당이다.
C++ 동적 할당
new
자유 공간에 있는 메모리를 힙 메모리에 새롭게 배정해주는 역할을 합니다. 포인터를 사용해서 기억 장소를 배정해 다른 곳에서 사용할 수 없도록 막아줍니다.delete 힙에 배정되었던 메모리를 자유공간으로 되돌려주는 역할입니다. 아직 포인터가 기억장소를 가르키고 있지만 이미 자유공간으로 배정되었기 때문에 다른 포인터들이 사용할 수 있습니다.
NULL처리
포인터 값을 NULL로 바꿔줌으로써 포인터가 가르키는 기억장소가 없게끔 합니다.