Programming/C++

[C++] 동적 할당

Jubil 2018. 1. 21. 20:29
반응형

C언어에서 동적 할당은 malloc(), calloc(), realloc() 등의 함수를 이용해서 공간을 할당해줬습니다.

그리고 free() 라는 함수로 해제해줬습니다.



C++에서는 다릅니다.


기억공간 할당 : new

기억공간 해제 : delete



자료형 *포인터변수 = new 자료형;    or

자료형 *포인터변수 = new 자료형[개수];


이렇게 공간을 할당합니다.


delete 포인터변수;    or

delete[] 포인터변수;


이렇게 공간을 해제합니다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main() {
    int *pi = new int;        //int 하나 크기(4byte)의 기억공간 할당    
    *pi = 100;
    cout << *pi << endl;
    delete pi;                //하나의 기억공간 해제
 
 
 
    int *piarr = new int[3];                            //int 3개 크기(12byte)의 기억공간 할당
    piarr[0= 10*(piarr + 1= 20; piarr[2= 30;
 
    for (int i = 0; i < 3++i)
        cout << piarr[i] << endl;
 
    delete[] piarr;                                        //여러 개의 기억공간 해제
 
    return 0;
}
cs


간단한 사용 예입니다.



감사합니다.

반응형

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

[C++] 함수  (0) 2018.01.21
[C++] 구조체  (0) 2018.01.21
[C++] 명시적 형변환  (0) 2018.01.21
[C++] std::cin?  (0) 2018.01.21
[C++] std::cout, std::endl?  (0) 2018.01.21