【C言語】初期化に使うmemset関数の使い方を詳しく解説

目次から探す

memset関数の具体的な使用例

配列の初期化

配列を特定の値で初期化するために、memset関数を使用することができます。

以下に、配列の初期化の例を示します。


#include <stdio.h>
#include <string.h>
int main() {
    int numbers[5];
    // 配列を0で初期化する
    memset(numbers, 0, sizeof(numbers));
    // 配列の要素を表示する
    for (int i = 0; i < 5; i++) {
        printf("%d ", numbers[i]);
    }
    return 0;
}

上記のコードでは、numbersという名前の整数型の配列を定義し、memset関数を使用して配列を0で初期化しています。

memset(numbers, 0, sizeof(numbers)) という行で、numbers配列の先頭アドレスを指定し、0という値を配列の要素にセットしています。

その後、forループを使用して配列の要素を表示しています。

実行結果は、0 0 0 0 0となります。

文字列の初期化

文字列を特定の値で初期化するためにも、memset関数を使用することができます。

以下に、文字列の初期化の例を示します。


#include <stdio.h>
#include <string.h>
int main() {
    char str[10];
    // 文字列を空文字で初期化する
    memset(str, '\0', sizeof(str));
    // 文字列を表示する
    printf("%s\n", str);
    return 0;
}

上記のコードでは、strという名前の文字型の配列を定義し、memset関数を使用して配列を空文字で初期化しています。

memset(str, '\0', sizeof(str))という行で、str配列の先頭アドレスを指定し、空文字'\0'という値を配列の要素にセットしています。

その後、printf関数を使用して文字列を表示しています。

実行結果は、空文字列となります。

構造体の初期化

構造体を特定の値で初期化するためにも、memset関数を使用することができます。

以下に、構造体の初期化の例を示します。


#include <stdio.h>
#include <string.h>
typedef struct {
    int id;
    char name[20];
    float score;
} Student;
int main() {
    Student student;
    // 構造体を0で初期化する
    memset(&student, 0, sizeof(student));
    // 構造体の要素を表示する
    printf("ID: %d\n", student.id);
    printf("Name: %s\n", student.name);
    printf("Score: %.2f\n", student.score);
    return 0;
}

上記のコードでは、Studentという名前の構造体を定義し、memset関数を使用して構造体を0で初期化しています。

memset(&student, 0, sizeof(student))という行で、student構造体の先頭アドレスを指定し、0という値を構造体のメモリ領域にセットしています。

その後、printf関数を使用して構造体の要素を表示しています。

実行結果は、IDが0、名前が空文字列、スコアが0.00となります。

以上が、memset関数の具体的な使用例です。

配列や文字列、構造体など、さまざまなデータ型を特定の値で初期化する際に、memset関数を活用してください。

1 2 3

この記事のページ一覧
  1. 現在のページ
目次から探す