전역변수에 배열을 선언하면 알고리즘 문제를 풀 때 편한 건 분명하다.
어느 함수에서든 배열을 가져다 쓸 수 있기 때문이다.
그런데 이걸 도입하고서 초반부에 디버깅에 어려움을 겪게 한 일이 있다.
main 위에
int arr[101] = {-1};
이렇게 코드를 작성했다. 이렇게 하면 당연히 모든 값이 -1로 초기화될 줄 알았다.
그런데 계속 이상한 값이 출력돼서 디버깅 해보니 배열의 첫 원소만 -1이고 나머지는 모두 0이었다.
그래서 프로그램이 의도치 않게 작동했다.
결론
- 배열의 모든 값들을 0으로 초기화하려 한다면 ={0,}으로도 가능하다.
- 배열의 모든 값들을 0이 아닌 다른 값들로 초기화하고자 하면 <algorithm>에 있는 std::fill()을 사용해 배열의 값들을 초기화하자.
'백준 > 이걸 몰랐네' 카테고리의 다른 글
[c++]std::list::erase() 함수 사용 시 반환 값을 사용하자 (0) | 2020.09.09 |
---|---|
예제 입출력은 분명 맞는데 틀렸다고 할때 대처법 (0) | 2020.08.31 |
백준 11720번 숫자의 합(문자로 안 받고 정수로 받기) (0) | 2020.08.30 |
[c++]리스트 sort 하는 방법 (0) | 2020.08.29 |
std::string 빈 문자열에 값 대입하는 방법 (0) | 2020.08.27 |