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 ZGC

Spring Boot Actuator readiness, liveness probes on k8s

About G1 GC

sneak peek jitpack

About idempotent

C 언어 구조체의 포인터 멤버 변수

Synology NAS에 MariaDB 10에 Mysql workbench로 원격접속하기

About Websocket minimize data size and data transfer cost on cloud