메모리 누수란?
Heap에 동적 할당된 메모리 공간이 가리키는 포인터 없이 해제되지 않은 채 남겨지는 것
메모리 누수는 다음과 같은 상황에서 발생한다.
void print()
{
int *ptr = new int;
*ptr = 1;
std::cout << *ptr << std::endl;
}
// 함수 종료 후 ptr이 가리키는 영역이
// 찾을 수 없는 상태로 해제되지 않은 채 남겨지게 된다.
void main()
{
for (int i = 0; i < 100; ++i)
print();
}
'C++ > 기타' 카테고리의 다른 글
템플릿(Template) (0) | 2023.01.20 |
---|---|
깊은 복사와 얕은 복사 (0) | 2023.01.20 |
std::iterator와 std::reverse_iterator (0) | 2023.01.20 |
nullptr과 NULL (0) | 2023.01.19 |
댕글링 포인터(Dangling pointer) (0) | 2023.01.19 |