전산학에서 메모리 누수(memory leak) 현상은 컴퓨터 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상이다. 할당된 메모리를 사용한 다음 반환하지 않는 것이 누적되면 메모리가 낭비된다. 일부 서적에서 메모리 손실이라는 용어로 뜻을 옮기기도 하지만[1] leak라는 표현은 단순히 잃는 것 이상의 개념이므로 누수라는 표현이 더 정확하다.
결과
프로그램을 실행하는 동안, 시간이 가면 갈수록 메모리를 더 많이 잡아 먹는다. (서버에서의 백그
라운드 작업에서 이러하기도 하지만, 특히 임베디드 장치에서도 여러 해 동안 이러한 문제가 지속되었다.)
컴퓨터 게임을 하거나 동영상의 프레임을 렌더링할 때 새로운 메모리가 수시로 할당된다.
프로그램을 종료해도 해당 프로그램은 실제로 종료되지 않고 공유 메모리에 남아 있다.
운영 체제 안에서 메모리 누수가 일어난다.
시스템에 중요한 드라이버에서 메모리 누수가 일어난다.
메모리는 임베디드 시스템, 휴대용 장치에 제한된다.
[출처] 위키백과사전 http://ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EB%88%84%EC%88%98
C언어는 메모리를 할당하였다면 수동으로 해제해주어야 된다.
포인터변수=(자료형)malloc(할당할메모리)으로 메모리를 할당하였다면 free(포인터변수)로 해제해주자
'Programing > C/C++' 카테고리의 다른 글
Struct와 typedef struct의 차이 (0) | 2012.01.20 |
---|---|
배열 (0) | 2012.01.20 |