Static/Dynamic Array

CJB_ny·2022년 11월 5일
0

DataStructure & Algorithm

목록 보기
5/35
post-thumbnail

Array 의 종류

  • Static Array

    Complie Time에 size가 정해진다.

  • Dynamic Array

    Run Time에 size가 정해진다.

종류Static ArrayDynamic Array
Allocation Timestack에서 메모리 할당이 일어나기 때문에 dynamic Array보다 빠르다.Static array보다는 느리다.
메모리StackHeap

정의 방법

종류C-styleMordern Way(std)
Static Arrayint a[5];std::array<int, 5> a;
Dynamic Arrayint* ap = new int[5]; delete[] apstd::vector< int > a(5);

Dynamic Array

C-style식으로 dynamic array를 정의할 경우에

항상 delete[] ap; 이런식으로 delete키워드를 꼭 넣어줄 것을 배웠다.

=> Memory Leak이 발생하기 때문에 항상 넣어주어야함. (동적으로 메모리 빌려다 썻으니까)

반면에 Morder Way식으로 dynamic Array를 사용할 경우

메모리 해제는 알아서 해주기 때문에 C-style처럼 메모리 해제 하는 부분을 신경을 안 써 주어도 된다는 장점이 있다.

언제 Static 사용 Dynamic 사용? ❗

size가 작고 complie time에 size를 알 수 있는 경우에 사용하면 좋다.

Stack에 할당 될 것이기 때문에 Allocation Speed가 Dynamic Array보다 빠르기 때문에

size가 작다라는 것의 기준은 1~2MB사이 이면된다.

하지만 가장 큰 이점은,

Allocation, DeAllocation Time이 '0'이다.

그 이유는 Stack에 들어있기 때문이다.

array의 max size만 알 고 있어도 std::array를 사용하는 것을 추천한다.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글