c++에서 동적 할당 기능을 가진 연산자이다. malloc, free와 비교할 때 아래의 이점을 가진다.
| malloc, free | new & delete |
|---|---|
| 할당할 대상의 정보를 무조건 바이트 크기 단위로 전달해야 한다. | 할당할 대상의 자료형만 전달하면 된다. |
| 반환형이 void형 포인터이기 때문에 적절한 형 변환을 거쳐야 한다. | 처음부터 할당 대상 자료형의 pointer형이 반환된다. |
키워드 new의 사용방법
| 목적 | 코드 |
|---|---|
| int형 변수의 할당 | int *ptr1 = new int; |
| double형 변수의 할당 | double *ptr2 = new double; |
| 길이가 3인 int형 배열의 할당 | int *arr1 = new int[3]; |
| 길이가 7인 double형 배열의 할당 | double *arr2 = new double[7]; |
키워드 delete의 사용방법
| 목적 | 코드 |
|---|---|
| 앞서 할당한 int형 변수의 소멸 | delete ptr1; |
| 앞서 할당한 double형 변수의 소멸 | delete ptr2; |
| 앞서 할당한 int형 배열의 소멸 | delete []arr1; |
| 앞서 할당한 double형 배열의 소멸 | delete []arr2; |
참고자료