이글은 모두의 코드 C++ 강의를 보고 정리하였습니다.
C언어에서 제공하는 메모리를 할당하고 해제하는 키워드로 각각 malloc, free가 있습니다.
C++에서도 사용이 가능하지만 언어에 맞는 할당 및 해제 키워드로 new, delete가 있습니다.
new 키워드
메모리 영역을 할당하는 키워드로 HEAP 영역(자유롭게 할당 및 해제하는 영역)에 메모리 할당하고 그 주소를 리턴해줍니다.
delete 키워드
가리키는 주소의 영역을 할당 해제 해주는 키워드입니다.
사용 예
/* new 와 delete 의 사용 */
#include <iostream>
int main() {
int* p = new int;
*p = 10;
std::cout << *p << std::endl;
delete p;
return 0;
}
보다시피 new 키워드로 int 영역을 할당 후 주소를 $*p$ 포인터에 담아줍니다.
그리고 포인터에 값 10을 할당해줍니다.
그리고 끝에는 delete p로 할당해준 공간을 해제해줍니다.
주의)
만약 new로 할당된 공간이 아닌 변수를 delete로 해제하면 에러 메세지가 뜨게 됩니다.
new로 동적 할당 배열 크기 설정
사용 예)
int size;
std::cout << "array size : ";
std::cin >> size;
int *list = new int[size];
위의 코드는 size를 입력 받아 원하는 size 크기만큼의 int형 배열이 new 키워드로 생성 되어서 list라는 포인터에 담았습니다.