C 언어 구조체 배열 선언과 초기화 방법들

1. 선언과 동시에 0으로 초기화
2. memset() 함수를 이용한 초기화
3. 초기화 목록을 이용한 초기화
4. 반복문을 이용한 초기화


#include <stdio.h>
#include <string.h>

struct student
{
        char name[20];
        int age;
        long number;
};

int main()
{
        //1. 선언과 동시에 0으로 초기화
        struct student students[3] = {0};
        //2. memset() 함수를 이용한 초기화
        struct student students2[3];
        memset(students2,0,sizeof(students2));
        //3. 초기화 목록을 이용한 초기화
        struct student students3[3] = {
                {"kim", 25, 45607},
                {"기리",28,60121315},
                {"Lee",23, 45609}
        };
        //4. 반복문을 이용한 초기화
        int i = 0;
        struct student students4[3] = {0};
        int size = sizeof(students4) / sizeof(struct student );

        for(i = 0; i < size ; i++ )
        {
                printf("이름 입력 : ");
                scanf("%s", students4[i].name);

                printf("나이 입력 : ");
                scanf("%d", &students4[i].age);

                printf("학번 입력 : ");
                scanf("%ld", &students4[i].number);
        }

        for(i = 0; i < size; i++)
        {
                printf("이름 : %s\n", students4[i].name);
                printf("나이 : %d\n", students4[i].age);
printf("학번 : %ld\n", students4[i].number);
        }

        return 0;
}


실행 시 :
ndgndg91@LAPTOP-CCFK7MKV:~$ ./struct_init
이름 입력 : 남동길
나이 입력 : 28
학번 입력 : 60121315
이름 입력 : 바보
나이 입력 : 19
학번 입력 : 123213
이름 입력 : ㅎ천재
나이 입력 : 20
학번 입력 : 12315457
이름 : 남동길
나이 : 28
학번 : 60121315
이름 : 바보
나이 : 19
학번 : 123213
이름 : 천재
나이 : 20
학번 : 12315457

댓글

이 블로그의 인기 게시물

About Kafka Basic

About JVM Warm up

About idempotent

About G1 GC

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

sneak peek jitpack

Optimistic Concurrency Control VS Pessimistic Concurrency Control - What should i choose?

DDD(Domain Driven Design) - Aggregate (어그리게잇)

Strategy Pattern In Spring (feat. JPA)