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関数»を活用してください。