728x90
반응형
1.
배열을 전역으로 선언하면 기본값이 0으로 초기화된다. 하지만 지역변수는 0으로 초기화된다는 보장이 없다. 지역변수로 선언할 때 0으로 확실히 초기화하고 싶으면 int cnt[50001] = {0, } 이렇게 선언하면 된다.
2.
지역변수로 선언하면 메모리의 스택 영역에 할당된다. 스택은 메모리가 작아 크기가 큰 배열을 선언하기에 적당하지 않다. 전역변수는 메모리 데이터 영역에 할당되며, 크기가 큰 배열을 선언해도 문제없이 할당된다. 10만 이상 크기의 배열은 전역으로 선언하는 것이 좋다.
728x90
반응형
'Language > C++' 카테고리의 다른 글
[C++] 문자열 split 함수 구현하기 (0) | 2023.03.14 |
---|---|
[C++] 원하는 자리수까지 출력하기 (반올림, 올림, 내림) (0) | 2022.05.27 |
[C++] STL - 정렬 알고리즘 함수 (sort, stable_sort, binary_search) (0) | 2021.11.07 |
[C++] STL - 변경 알고리즘 함수 (copy, swap, transform, next_permutation) (0) | 2021.11.07 |
[C++] STL - 읽기 알고리즘 함수 (find, for_each) (0) | 2021.11.06 |