메모리 동적 할당
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 연산자는 객체의 소멸자를 호출한다는 점이다
'C++' 카테고리의 다른 글
C++ 깊은복사 얕은복사 (0) | 2020.02.02 |
---|---|
C++ 복사 생성자(참조형 파라미터) (0) | 2020.02.01 |
C++ this 포인터 (0) | 2020.02.01 |
C에서 C++ 객체지향의 변환 과정 (0) | 2020.01.28 |
C++ 참조자 형식(reference) (0) | 2020.01.27 |