#include <iostream>
#include <string>
using namespace std;
void ss();
int main()
{
ss();
ss();
ss();
ss();
}
void ss()
{
int *si = new int;
*si = 1;
cout << *si;
}
계속 delete를 하지 않고 함수를 불러온다.
불러올때마다 할당된 메모리가 계속 쌓이게된다.
delete를 쓰기 전까지 메모리가 누수된다.
한번 사용 후에 그 변수를 다시 쓰지않고 재할당 할 경우에는 할당전에 delete를 꼭 해줘야한다.
#include <iostream>
#include <string>
using namespace std;
int *ss();
int main()
{
ss();
ss();
ss();
int *i = ss();
cout << *i;
delete i;
}
int *ss()
{
int *si = new int;
*si = 1;
cout << *si;
return si;
}
마지막에 delete한다.
delete를 해줄시에 마지막으로 받아온 그 메모리만 삭제된다.
다른 메모리들은 누수되었다.
'C++ > Basic' 카테고리의 다른 글
연결리스트와 배열의 특징 (0) | 2021.03.12 |
---|---|
struct 포인터 (0) | 2021.03.12 |
메모리 활용 예시 delete (0) | 2021.03.11 |
구조체(struct) (0) | 2021.02.22 |
포인터 (0) | 2021.02.22 |