【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. 現在のページ
目次から探す