메모리 누수(memory leak), 메모리 누수의 예제코드 - C, C++

CODEDRAGON Security/SecureCoding

반응형


 

 

메모리 누수(memory leak)

http://codedragon.tistory.com/4102

 

 

 

 

메모리 누수의 예제코드

 

잘못된 코드 (메모리 누수 발생)

안전하지 않은 코드

// Bad 코드 (메모리 누수 발생)

void sub() {

int *pi = new int;    // 메모리 할당

 

*pi = 69; // 사용

 

pi = new int;    // 메모리 할당, 메모리 누수발생

// 기존에 할당 받은 메모리 공간을 추적할 없게 됩니다.

// 기존에 할당받은 값은 누구도 사용할 없게 되어집니다.

*pi = 99;

}

 

 

올바른 코드

안전한 코드

// Good 코드

void sub() {

int *pi = new int;    // 메모리 할당

*pi = 69; // 사용

delete pi; // 메모리 반납

 

pi = new int;    // 메모리 할당

*pi = 99;

delete pi;

}