상세 컨텐츠

본문 제목

[TIL] 1 - 7. 객체지향 기본 문법 - 동적메모리 할당

언어/C++

by 민:하 2022. 2. 9. 11:15

본문

 

1. 정적메모리 vs 동적메모리

▶ 정적메모리 할당 : 프로그래밍 시에 정해진 크기의 기억공간을 미리 선언하는 것

▶ 동적메모리 할당 : 프로그램 수행도중에 필요한 메모리를 할당 받아 사용하는 것

 


2. C++에서의 동적메모리 할당 & 해제 연산자

  • 동적메모리 할당 연산자 : new, new[ ], new[ ][ ], ...
  • 동적메모리 해제 연산자 : delete, delete[ ] (배열은 차원 상관없이 delete[ ])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;
 
int main(void) {
 
    /* 변수 1개 동적메모리 할당 */
    double *d;
    d = new double;        // 동적메모리 할당
    *= 3.14;             // 동적메모리가 할당된 기억공간에 3.14 저장
    delete d;             // 할당된 기억공간 반납 (= 미예약 영역으로 변경)
 
    /* 1차원 배열 동적메모리 할당*/
    int cnt = 10;
    int *i;
    i = new int[cnt];
    delete[] i;
 
    /* 2차원 배열 동적메모리 할당 (column 고정) */
    char (*c)[10];
    c = new char[cnt][10];
    delete[] c;
 
    return 0;
}
cs

3. 동적메모리 특징

  • RAM의 heap 영역에 할당
  • 연속된 기억공간에 할당
  • 이름은 없으나 주소는 존재하므로 포인터 변수로 제어
  • 초기화 불가

관련글 더보기

댓글 영역