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

조회수 31802회
int array[100] = {0};

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

int array[100] = {-1};

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

1 답변

  • 좋아요

    3

    싫어요
    채택 취소하기
    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);
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)