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 
⚠️ **GitHub.com Fallback** ⚠️