본문 바로가기

Language/C++

[C++] PS할 때 전역변수를 써야 하는 경우

728x90
반응형

1.

배열을 전역으로 선언하면 기본값이 0으로 초기화된다. 하지만 지역변수는 0으로 초기화된다는 보장이 없다. 지역변수로 선언할 때 0으로 확실히 초기화하고 싶으면 int cnt[50001] = {0, } 이렇게 선언하면 된다.

2.

지역변수로 선언하면 메모리의 스택 영역에 할당된다. 스택은 메모리가 작아 크기가 큰 배열을 선언하기에 적당하지 않다. 전역변수는 메모리 데이터 영역에 할당되며, 크기가 큰 배열을 선언해도 문제없이 할당된다. 10만 이상 크기의 배열은 전역으로 선언하는 것이 좋다.

728x90
반응형