메모리 누수는 프로그래머가 이전에 할당한 메모리 조각일 때 발생합니다. 그러면 프로그래머에 의해 제대로 할당 해제되지 않습니다. 해당 메모리는 더 이상 프로그램에서 사용하지 않습니다. 그래서 그 장소는 아무 이유없이 예약되어 있습니다. 그래서 이것을 메모리 누수라고 합니다.
메모리 누수의 경우 일부 메모리 블록이 낭비되었을 수 있습니다. 시스템에 충분한 메모리가 있는 경우 이 경우에도 성능이 저하될 수 있습니다.
예시
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