메모리 동적 할당

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

+ Recent posts