Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C/C++에서 메모리 누수란 무엇입니까?

<시간/>

메모리 누수는 프로그래머가 이전에 할당한 메모리 조각일 때 발생합니다. 그러면 프로그래머에 의해 제대로 할당 해제되지 않습니다. 해당 메모리는 더 이상 프로그램에서 사용하지 않습니다. 그래서 그 장소는 아무 이유없이 예약되어 있습니다. 그래서 이것을 메모리 누수라고 합니다.

메모리 누수의 경우 일부 메모리 블록이 낭비되었을 수 있습니다. 시스템에 충분한 메모리가 있는 경우 이 경우에도 성능이 저하될 수 있습니다.

예시

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