C 배열을 초기화하는 방법

배열을 선언할 때 처음부터 끝까지 같은 값으로 초기화하고 싶습니다.

지금은

int myarr[30];
for(i=0; i<30; i++)
    myarr[i] = 3;

이런식으로 for문 돌려서 하고 있는데 memset()말고 myarr[all] = 3; 이런식으로 한꺼번에 다 세팅하는 방법 없나요?

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    초기화하려는 값이 0인 경우는 있지만 그 외의 값은 없습니다. 특정 값으로 초기화해주려면 for문을 돌거나 일일이 지정해줘야 합니다.

    1. 전부 지정해주기

    int myArray[10] = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };

    2. 일부만 지정한경우 - 나머지는 0으로 채워짐

    int myArray[10] = { 1, 2 }; -> 인덱스 2부터 9까지는 0값을 가집니다

    3. 전부 0으로 지정하고 싶은 경우

    int myArray[10] = { 0 };

    4. 0으로 지정하는 다른 방법(C++에서만 가능)

    int myArray[10] = {};

    5. static으로 선언하기 - 전부 0으로 초기화

    static int myArray[10]

    여기서 말하는 0은 메모리공간의 처음부터 끝까지 전부 0으로 설정된다는 의미는 아니기 때문에(char는 \0등) memset()과는 좀 다른 의미입니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.