C 배열 초기화 - sonkoni/Koni-Wiki GitHub Wiki
자료형 배열이름[갯수] = {0,};
배열을 초기화하지 않으면 쓰레기값으로 찬다.
#include <stdio.h>
int main(int argc, char *argv[]) {
char buffer[5];
// 요소 확인
for (int i = 0; i < 5; i++) {
printf("%2d ", buffer[i]);
}
return 0;
}
// 15 234 -1234241 0 199 0 55 : 쓰레기값깨끗한 배열이 필요할 때 = {0,}; 를 사용해 배열을 0으로 채운다. 물론 = {0}; 만 넣어도 된다.
#include <stdio.h>
int main(int argc, char *argv[]) {
int helloArr[5] = {0,};
char worldArr[5] = {0};
// 요소 확인
printf("helloArr: ");
for (int i = 0; i < 5; i++) {
printf("%2d ", helloArr[i]);
}
printf("\nworldArr: ");
for (int i = 0; i < 5; i++) {
printf("%2d ", worldArr[i]);
}
return 0;
}
// helloArr: 0 0 0 0 0
// worldArr: 0 0 0 0 0 특정 값으로 초기화 하려면 자료형이 char 일 때에는 memset 을 쓰면 간편하다. 하지만 자료형이 char 가 아닐 때에는 loop 를 돌며 할당하는 편이 좋다.
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
int helloArr[5];
char worldArr[5];
// 루프 돌며 대입
for (int i = 0; i < 5; i++) {
helloArr[i] = 8;
}
// 확인
printf("helloArr: ");
for (int i = 0; i < 5; i++) {
printf("%08x ", helloArr[i]);
}
// 자료형이 char 일 때 함수를 통해 특정 값 할당
memset(worldArr, 8, sizeof(char) * 5);
// 확인
printf("\nworldArr: ");
for (int i = 0; i < 5; i++) {
printf("%02x ", worldArr[i]);
}
return 0;
}
// helloArr: 00000008 00000008 00000008 00000008 00000008
// worldArr: 08 08 08 08 08