int *pi = new int; // 하나의 int형 공간 할당
int *pia = new int[100]; // 크기가 100인 int형 동적배열 할당
double *pd = new double; // 하나의 double형 공간 할당
double *pda = new double[100]; // 크기가 100인 double형 동적배열 할당
delete pi; // 동적 할당한 int형 공간 반납
delete[] pia; // 동적 할당한 배열 반납
delete pd; // 동적 할당한 double형 공간 반납
delete[] pda; // 동적 할당한 배열 반납
C에서의 동적 메모리
C에서도 메모리의 동적 할당이 가능한데, 방법이 살짝 다르다.
new와 delete 키워드 대신, malloc과 free 키워드를 사용한다.
사용 방법
int *pi = (int *)malloc(sizeof(int)); // 하나의 int형 공간 할당
int *pia = (int *)malloc(sizeof(int) * 100); // 크기가 100인 int형 동적배열 할당
double *pd = (double *)malloc(sizeof(double)); // 하나의 double형 공간 할당
double *pda = (double *)malloc(sizeof(double) * 100); // 크기가 100인 int형 동적배열 할당
free(pi); // 동적 할당한 int형 공간 반납
free(pia); // 동적 할당한 배열 반납
free(pd); // 동적 할당한 double형 공간 반납
free(pda); // 동적 할당한 배열 반납
C++ 동적 메모리 예제
#include <iostream>
using namespace std;
int main()
{
int *pi; // 동적 메모리를 가리키는 포인터
pi = new int[100]; // 동적 메모리 할당
for(int i=0; i < 100; i++)
*(pi+i) = 0; // 동적 메모리 사용
delete[] pi; // 동적 메모리 반납
return 0;
}