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 |