Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- C++
- 언리얼엔진구조체
- 델리게이트
- 정렬
- 애셋로드
- UML관련
- 자료구조
- 정렬알고리즘
- unorder_map
- UELOG
- 람다사용정렬
- 프로그래머스
- 크리티컬섹션
- 람다
- 데이터애셋
- dataasset
- UE_LOG
- 선택정렬
- BFS
- 약참조
- enumasByue
- C++최적화
- UE4 커스텀로그
- 스마트포인터
- map
- stl
- moreeffectiveC++
- 언리얼가비지컬렉터
- 알고리즘
- 강참조
Archives
- Today
- Total
기억을 위한 기록들
[CPP] 메모리 누수 찾기 - _CrtDumpMemoryLeaks()함수 본문
위 코드는 빌드하면 아무런 문제도 없다고 나온다.
이대로 F5 디버그를 눌러봐도
문제는 없어서 정상적으로 실행된다.
하지만 해당 코드는 힙에 메모리를 할당(new)해주고 해제(delete)를 해주지 않아 메모리 누수가 발생되는 코드이다.
이런 누수를 체크해주는 라이브러리가 있다.
<crtdbg.h> 라이브러리
_CrtDumpMemoryLeaks();
그래서 해당 함수를 추가하고 디버그를 찍어보면,
중간에
Detected memory leaks! 라는 "메모리 누출 감지됨!" 이라는 말이 보인다. 그 밑에
그 말외엔 직관적인 힌트를 얻기 힘든데,
#if _DEBUG
#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
#define malloc(s) _malloc_dbg(s,_NORMAL_BLOCK,__FILE__,__LINE__)
#endif
해당 코드를 넣어주면
위 처럼 12번째 줄에 문제가 생겼다고 알려준다.
그리하여 해당 arr변수 메모리 해제를 시켜주고 다시 F5를 눌러보면
Detected memory leaks 문구는 사라진걸 볼 수 있다.
'C & CPP' 카테고리의 다른 글
[C++ 참고자료] 코딩표준에 관하여 - 포프 (0) | 2021.03.04 |
---|---|
템플릿(Template) 프로그래밍 (0) | 2021.03.01 |
new와 malloc의 차이점 (0) | 2021.01.19 |
[C++] char 와 string을 int형으로 변환하기 (0) | 2021.01.12 |
<algorithm>라이브러리 sort 함수 - 연산자 오버로딩 사용 예 (0) | 2021.01.08 |