C 배열을 초기화하는 방법


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

지금은

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

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

  • 2016년 01월 29일에 작성됨

조회수 672


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()과는 좀 다른 의미입니다.

  • 2016년 01월 29일에 작성됨

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

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