void f() {
int *p;
for(int i=0; i<5; i++){
p = new int;
cin >> *p;
if(*p % 2 == 1) break;
}
delete p;
}
이렇게 되면 p는 size가 5인 배열이 되는거 아님??
그래서 해제할때 delete[] p; 해줘야 되는거 아님 잘 모르겟다..
void f() {
int *p;
for(int i=0; i<5; i++){
p = new int;
cin >> *p;
if(*p % 2 == 1) break;
}
delete p;
}
이렇게 되면 p는 size가 5인 배열이 되는거 아님??
그래서 해제할때 delete[] p; 해줘야 되는거 아님 잘 모르겟다..
p에 4바이트 인트를 할당한 다음에 이전 주소를 덮어버리네 결국 4바이트 하나만 남고 4개는 실종됨
ㄳ
근데 결국 이전의 4개의 메모리 반납이 이루어지지 않았기 때문에 메모리 누수가 발생한거니까 for문 안에서 delete p;를 해줘야 하는거지??
ㅇ