C/C++배열 원소 전체를 -1로 초기화하는 쉬운 방법 없을까요?


int array[100] = {0};

은 원소 전체를 0으로 설정해준다길래 하나만 설정하면 되는 줄 알고

int array[100] = {-1};

이렇게 썼더니 제일 첫번째 원소만 -1이지 나머지는 다 0이됬습니다. for문 돌리는건 선언이랑 초기화랑 따로 되는거라서 싫은데 다른 방법 없을까요?

  • 2016년 02월 04일에 작성됨

조회수 1841


1 답변


좋아요
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);
  • 2016년 02월 04일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close