memset関数による配列の初期化する
【C言語入門】
memset関数の使い方と配列初期化のコツを解説!
「memset関数」とは、C言語やC++言語において配列を初期化するための関数です。
この記事では、memset関数の概要や使い方を詳しく解説し、
具体的なプログラムの作成方法を紹介します。
また、配列及びsizeofについても触れているので、あわせて参考にしてみてください。
1.目的
- memsetについて理解する。
- memsetの使い方について学習する。
目次
2. memset関数とは
・メモリ領域に指定した値を設定する為の関数。
3. memset関数の使い方
void memset(void s, int c, size_t n);
s: 初期化対象となる変数(配列)を指定する
c: 初期化に用いる値(char型の場合、整数値にキャストされる)
n: 初期化対象となる要素数
4. プログラムの作成(memsetを使用して配列を初期化)
#include <stdio.h> //printfを使用する為にインクルード #include <string.h> //memsetを使用する為にインクルード int main(void) { char num[] = "0123456789"; //文字列"0123456789"を配列numに格納 char num2[] = "0123456789"; //文字列"0123456789"を配列num2に格納 int num3[8]; //要素数8のint型配列num3を宣言 int num3elc = sizeof(num3)/sizeof(num3[0]); //num3の要素数を計算してnum3elcに格納 memset(num,'x',sizeof(num)); //numに含まれる全ての要素を'x'で埋める memset(num2+2,'x',3); //num2[2]から3要素を'x'で埋める memset(num3,0,sizeof(num3)); //num3に含まれる全ての要素を0で埋める //memset(num3,2,sizeof(num3)); //これは出来ない。 printf("num1=%s\n",num); //numを出力 printf("num2=%s\n",num2); //num2を出力 //num3の値を出力 for (int i = 0; i < num3elc; i++) { printf("num3[%d]=%d\n",i,num3[i]); } return 0; }
結果:https://paiza.io/projects/ZRchx8RPMrSNQlpfALSX-g
配列及びsizeofについては下記記事を参照
C言語基礎知識3(配列) - Project_OKI’s diary
関連記事
C言語:
・組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
・C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary
・C言語基礎知識3(配列) - Project_OKI’s diary
・知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - Project_OKI’s diary
・C言語基礎知識6(関数) - Project_OKI’s diary
・C言語基礎知識7(構造体1) - Project_OKI’s diary
・C言語基礎知識8(enum:列挙型) - Project_OKI’s diary
・C言語基礎知識9(typedef) - Project_OKI’s diary