메모리 누수
컴퓨터 과학에서 메모리 누수(memory leak) 현상은 컴퓨터 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상이다. 할당된 메모리를 사용한 다음 반환하지 않는 것이 누적되면 메모리가 낭비된다. 즉, 더 이상 불필요한 메모리가 해제되지 않으면서 메모리 할당을 잘못 관리할 때 발생한다.[1] 일부 서적에서 메모리 손실이라는 용어로 뜻을 옮기기도 하지만[2] leak라는 표현은 단순히 잃는 것 이상의 개념이므로 누수라는 표현이 더 정확하다.
결과편집
이 문단의 내용은 출처가 분명하지 않습니다. (2021년 2월) |
특히 다음의 경우, 메모리 누수에 대하여 더 심각하고 중요하게 고려하여야 한다.
C에서의 단순 예시편집
다음 C 함수는 할당된 메모리의 포인터를 손실함으로써 메모리 누수를 일으킨다.
#include <stdlib.h>
void function_which_allocates(void) {
/* allocate an array of 45 floats */
float *a = malloc(sizeof(float) * 45);
/* additional code making use of 'a' */
/* return to main, having forgotten to free the memory we malloc'd */
}
int main(void) {
function_which_allocates();
/* the pointer 'a' no longer exists, and therefore cannot be freed,
but the memory is still allocated. a leak has occurred. */
}
같이 보기편집
각주편집
- ↑ Crockford, Douglas. “JScript Memory Leaks”. 2012년 12월 7일에 원본 문서에서 보존된 문서. 2012년 11월 6일에 확인함.
- ↑ 네이버 책 :: 네이버는 책을 사랑합니다
외부 링크편집
- (영어) Memory Leak Detection in C++[깨진 링크(과거 내용 찾기)] - Cal Erickson
- (영어) Memory Leak Detection in Embedded Systems - Cal Erickson
이 글은 컴퓨터 과학에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |