🔧 文字列 ・ string.h ・ C89
memset の使い方void *memset(void *s, int c, size_t n);
メモリ領域の各バイトを指定した値で埋める。配列やバッファのゼロクリア、構造体の初期化など、あらゆる場面で使われる定番関数。第2引数はint型だが下位1バイトのみが使われる。 構造体全体を一括で0クリアして未初期化フィールドを無くす初期化パターンで非常によく使われる。
#include <string.h>
#include <stdio.h>
int main(void) {
int arr[5];
memset(arr, 0, sizeof arr);
printf("%d\n", arr[0]);
return 0;
}
⚠️ int配列を0以外の値で埋めても、1バイト単位で埋めるためint全体としての意図した値にはならない(0と-1以外は注意)。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
memset と一緒に使う関数memcmp
memcpy
memmove
memset_explicit
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strdup
strerror
strlen
strncat
strncmp
strncpy
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。