memset関数を使用して、変数を初期化する方法について解説します。
構文
#include <string.h>
void *memset(void *addr, int ch, size_t n);
第1引数 – addr: セット先の先頭アドレス
第2引数 – ch: セットする値
第3引数 – n: セットするサイズ
戻り値 – addr( セット先の先頭アドレス )
サンプルプログラム
#include <stdio.h>
#include <string.h>
int main(void)
{
int i;
char str[8];
// 初期化前のstrの値を出力
printf("初期化前: ");
for(i = 0 ; i < 8 ; i++) {
printf("%4d ", str[i]);
}
printf("\n");
// str全体を0x00で初期化
memset(&str[0], 0x00, sizeof(str));
// 初期化前のstrの値を出力
printf("初期化後: ");
for(i = 0 ; i < 8 ; i++) {
printf("%4d ", str[i]);
}
printf("\n");
return 0;
}
■出力結果
初期化前: 64 -44 -7 37 -3 127 0 0
初期化後: 0 0 0 0 0 0 0 0
コメント