C에서는 malloc과 free함수를 이용하여 힙 상에서 메모리의 할당과 해제를 지원하였다. C++에서 메모리의 할당과 해제를 지원하는 것은 new와 delete다. new로 힙 상에 메모리를 할당하고, delete로 할당한 메모리를 해제한다.

#include <iostream>

int main()
{
    int* p = new int;
    *p = 10;

    std::cout << *p << std::endl;

    delete p;
    return 0;
}

 

다음과 같이 new로 배열을 할당할 수 있다.

#include <iostream>

int main()
{
    int arr_size;
    
    std::cout << "array size : ";
    std::cin >> arr_size;
    
    int *list = new int[arr_size];

    for(int i = 0; i < arr_size; i++)
        std::cin >> list[i];
    
    for(int i = 0; i < arr_size; i++)
        std::cout << i << "th element of list : " << list[i] << std::endl;
    
    delete[] list;
    return 0;
}

배열을 할당할 때는 자료형과 [] 안에 배열의 크기를 넣어주면 된다. 배열로 할당된 메모리를 해제할 때는 delete[]처럼 delete 뒤에 []을 붙여주면 된다.

'Language > C, C++' 카테고리의 다른 글

[C++] 함수 오버로딩 (Function Overloading)  (0) 2021.09.07
[C++] Reference(참조자)  (0) 2021.08.21
[C++] 입출력  (0) 2021.08.21
[Project H4C] C언어 코딩도장(6)  (0) 2021.03.02
[C] 문자 단위 입출력 함수  (0) 2021.01.15

+ Recent posts