메모리 누수는 프로그래머가 이전에 할당한 메모리 조각일 때 발생합니다. 그러면 프로그래머에 의해 제대로 할당 해제되지 않습니다. 해당 메모리는 더 이상 프로그램에서 사용하지 않습니다. 그래서 그 장소는 아무 이유없이 예약되어 있습니다. 그래서 이것을 메모리 누수라고 합니다.
메모리 누수의 경우 일부 메모리 블록이 낭비되었을 수 있습니다. 시스템에 충분한 메모리가 있는 경우 이 경우에도 성능이 저하될 수 있습니다.
예시
void my_func() {
int *data = new int;
*data = 50;
} 여기서 문제는 *데이터 포인터가 절대 삭제되지 않으므로 메모리가 낭비된다는 것입니다.
예시
#include <stdio.h>
main(void) {
auto int my_fun();
my_fun();
printf("Main Function\n");
int my_fun() {
printf("my_fun function\n");
}
printf("Done");
} 출력
my_fun function Main Function Done