C/C++배열 원소 전체를 -1로 초기화하는 쉬운 방법 없을까요?
조회수 31802회
int array[100] = {0};
은 원소 전체를 0으로 설정해준다길래 하나만 설정하면 되는 줄 알고
int array[100] = {-1};
이렇게 썼더니 제일 첫번째 원소만 -1이지 나머지는 다 0이됬습니다. for문 돌리는건 선언이랑 초기화랑 따로 되는거라서 싫은데 다른 방법 없을까요?
1 답변
-
int array[100] = {-1};
이 코드는 배열 전체를 -1로 초기화하는 게 아니라 "배열 첫 번째 원소만 -1로 만들고 나머지 지정하지 않은 원소는 다 0으로 초기화해달라"는 뜻입니다.
배열 전체를 같은 값으로 초기화하는 코드는 C, C++이 조금 씩 다르기 때문에 따로 적어놓겠습니다.
우선 C언어는 [C 배열을 초기화하는 방법]을 보시면 될 것 같고,
그 외에 GCC를 쓰신다면
int array[100] = { [0 ... 99] = -1 };
가 가능합니다.
C++에서만 쓸 수 있는 대표적인 코드는 헤더의
std::fill_n
입니다.std::fill_n(array, 100, -1);
댓글 입력