C言語 memset関数の使い方

C logo C

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

コメント

タイトルとURLをコピーしました