동적할당 new와 delete
-
C/C++ 에서 메모리 동적 할당이 필요할 때가 있다.
-
입력에 의한 메모리 할당이 필요할 경우나 메모리를 효율적으로 사용할 필요가 있는 경우 메모리 동적 할당이 필요하다.
-
C의 경우 malloc과 free를 통해 메모리 동적을 할당을 했다.
int main()
{
int size = 1024;
int* mem=(int*)malloc(sizeof(int)*size);
mem[0] = 0;
mem[1] = 1;
.
.
.
mem[1022] = 0;
mem[1023] = 1;
free(mem);
return 0;
}
-
위와 같이 동적 할당을 해서 힙(heap) 영역을 사용하고 free로 반환을 할 수 있다.
-
C++에서는 new와 delete를 사용할 수 있는데 훨씬 간결하게 사용할 수 있다.
int main()
{
int size = 1024;
int* mem = new int[size];
mem[0] = 0;
mem[1] = 1;
.
.
.
mem[1022] = 0;
mem[1023] = 1;
delete []mem;
return 0;
}
-
동적 할당하는 사용법이 훨씬 간단해 보인다. new를 사용하여 동적 할당하게 되면 할당된 시작 주소번지를 return하게 된다. 이를 포인트 *mem 변수를 통해 받아서 사용하는 것이다.
-
new로 동적 할당할 때 하나 더 다른 점이 있는데 메모리 할당에 실패하게 되면 NULL을 반환한다는 것이다. NULL은 정수 0과도 같은 의미로 해석된다.
도움이 되셨다면 더 좋은 정보 공유를 위해 광고 클릭 부탁 드립니다 :)
0 댓글