#include <crtdbg.h> 를 하고, 아래 코드를 이용해서 메모리 릭을 체크할 수 있다.
단, Ctrl + F5를 이용해서 실행을 하면 릭이 체크가 안된다.
릭을 체크하고자 한다면 F5(디버그 모드 실행)을 이용해서 실행하면 릭이 있을 경우 출력창에 릭을 알려준다.
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
동적 할당
동적할당 : 메모리를 시작할 때 만들어주는 것이 아닌, 필요한 순간에 공간을 만들어주는 기능이다.
new와 delete 키워드를 이용해서 동적으로 메모리를 할당하고 동적으로 할당된 메모리를 제거할 수 있다.
단, 동적할당된 메모리는 delete를 통해서 제거를 안 할 경우 메모리공간을 그대로 계속 차지하고 있게 된다.
이 상태에서 프로그램이 종료되면 메모리가 할당된 채로 남아있는 현상이 생기는데, 이를 메모리 릭 이라고 한다.
new 변수타입; 을 해주면 변수타입의 메모리 크기만큼을 동적으로 할당해주고 생성된 메모리의 주소를 반환한다.
반환된 주소는 따로 저장을 해주어야 한다.
메모리를 제거할 때, 해당 주소를 알아야 제거가 가능하기 때문이다.
'C++ 문법' 카테고리의 다른 글
함수 (0) | 2022.04.11 |
---|---|
구조체 struct, 레퍼런스 (0) | 2022.04.11 |
<포인터> void 타입, 이중 포인터 (0) | 2022.04.11 |
<포인터> 연산 / const (0) | 2022.04.09 |
<포인터> (0) | 2022.04.08 |