본문 바로가기
프로그래밍/c언어

c언어 구조체 초기화 방법 (Struct 초기화)

by C.D.콤파스 2023. 7. 17.

C 언어에서 구조체를 0으로 초기화하려면 다음과 같은 방법을 사용할 수 있습니다

 

1. 직접 초기화:

구조체를 정의할 때 중괄호 {}를 사용하여 직접 초기화할 수 있습니다. 이 경우 구조체의 모든 멤버가 0으로 초기화됩니다. 예를 들어, 다음은 myStruct라는 구조체를 0으로 초기화하는 예입니다:

#include <string.h>

struct myStruct {
    int num;
    float value;
};

struct myStruct example = {0};  // 모든 멤버를 0으로 초기화

이렇게 하면 example 구조체의 num 멤버와 value 멤버가 모두 0으로 설정됩니다

 

아래는 구조체내의 변수에 대한 초기화 방법입니다.

#include <stdio.h>

#include <stdio.h>
struct Person {
    char name[50];
    int age;
    float height;
};

int main() {
    // Initializing a structure variable
    struct Person person1 = {"John Doe", 30, 1.75};

    // Accessing and printing the values of the structure members
    printf("Name: %s\n", person1.name);
    printf("Age: %d\n", person1.age);
    printf("Height: %.2f meters\n", person1.height);

    return 0;
}

결과

Name: John Doe

Age: 30

Height: 1.75 meters

 

2. memset 함수 사용:

memset 함수를 사용하여 구조체를 0으로 초기화할 수도 있습니다. memset 함수는 메모리 블록을 특정 값으로 설정하는 데 사용됩니다. 구조체의 크기만큼 메모리를 0으로 설정하면 구조체 전체를 0으로 초기화할 수 있습니다. 다음은 memset 함수를 사용하여 example 구조체를 0으로 초기화하는 예입니다:

#include <string.h>

struct myStruct {
    int num;
    float value;
};

struct myStruct example;
memset(&example, 0, sizeof(struct myStruct));  // 구조체를 0으로 초기화