memset関数を使ってC言語でメモリを設定する方法
C言語のmemset関数を使うと、メモリブロックの中身を指定した値で埋めることができます。
memset関数のプロトタイプは次のとおりです:
void *memset(void *ptr, int value, size_t num);
パラメータの説明:
- ptr:設定したい値のメモリブロックを指すポインタ。
- 値:設定する値のこと。通常は整数値だが、特殊なケースで文字の場合もある
- num:設定するバイト数。
memset関数の使用例を以下に示します。
#include <stdio.h>
#include <string.h>
int main() {
char str[50];
strcpy(str, "Hello, World!");
printf("Before memset: %s\n", str);
memset(str, '*', 6);
printf("After memset: %s\n", str);
return 0;
}
結果を出力する。
Before memset: Hello, World!
After memset: ****** World!
上の例では、まずstrcpy関数を用いて”Hello, World!”という文字列をstr配列にコピーしています。次にmemset関数でstr配列の先頭の6バイトを’*’文字に設定しています。最後にstr配列の中身を出力すると先頭の6文字が’*’に置き換わったことがわかります。