반응형
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 |