C 배열을 초기화하는 방법
조회수 17862회
배열을 선언할 때 처음부터 끝까지 같은 값으로 초기화하고 싶습니다.
지금은
int myarr[30];
for(i=0; i<30; i++)
myarr[i] = 3;
이런식으로 for문 돌려서 하고 있는데 memset()
말고
myarr[all] = 3;
이런식으로 한꺼번에 다 세팅하는 방법 없나요?
1 답변
-
초기화하려는 값이 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()과는 좀 다른 의미입니다.
댓글 입력