C++
C++ new 메모리 동적할당
시연이아빠
2020. 1. 27. 13:09
메모리 동적 할당
C언어에 malloc이 있다면 C++에는 new 연산자가 있다!
사용 방법은 정말 심플하다
// 일반
형식 *변수이름 = new 형식;
delete 변수이름;
// 배열 형태
형식 *변수이름 = new 형식[요소개수];
delete[] 변수이름;
// 일반
int* pData = new int;
int* pNewData = new int(10);
*pData = 5;
std::cout << *pData << std::endl;
std::cout << *pNewData << std::endl;
std::cout << "Hello World!\n";
// 배열
int* arr = new int[5];
for (int i=0; i < 5; ++i)
{
arr[i] = (i + 1) * 10;
}
for (int i=0; i < 5; ++i)
{
std::cout << arr[i] << std::endl;
}
delete[] arr;
위와 같이 사용한다.
new 연산자와 malloc을 비교했을때 가장 큰 차이점은 메모리 크기를 정하지 않아도 알아서 해준다는 점이다.
그리고 하나 더 new 연산자는 객체의 생성자를 호출하고, delete 연산자는 객체의 소멸자를 호출한다는 점이다