メモリ/メモリの内容を指定した値で初期化する・memset
の編集
Top
/
メモリ
/
メモリの内容を指定した値で初期化する・memset
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * メモリの内容を指定した値で初期化する・memset [#o9589825] 指定したメモリ番地から指定したサイズ分を指定した値で初期化するmemset関数のC言語サンプルソースを以下に記します。 #contents #htmlinsertpcsp(c-top.html,c-sp.html) *関連記事 [#l8b52abc] -[[メモリの内容を指定した値で初期化する・memset>メモリ/メモリの内容を指定した値で初期化する・memset]] -[[メモリ内容をコピーする・memcpy>メモリ/メモリ内容をコピーする・memcpy]] -[[構造体の内容をコピーする・memcpyは使わない!>メモリ/構造体の内容をコピーする・memcpyは使わない!]] -[[メモリの比較を行う・memcmp>メモリ/メモリの比較を行う・memcmp]] -[[動的にメモリを取得する・malloc>メモリ/動的にメモリを取得する・malloc]] -[[動的メモリサイズを拡張する・realloc>メモリ/動的メモリサイズを拡張する・realloc]] -[[malloc,calloc,reallocで取得したメモリを解放する・free>メモリ/malloc,calloc,reallocで取得したメモリを解放する・free]] -[[指定した文字数分コピーする・memmove>メモリ/指定した文字数分コピーする・memmove]] -[[指定したバイトの指定個数分メモリを確保する・calloc>メモリ/指定したバイトの指定個数分メモリを確保する・calloc]] * memsetの書式等 [#uea32945] -必要なインクルードファイル #include <string.h> -memsetの書式 void *memset(void *s, int c, size_t n); -戻り値~ なし -引数~ 1つ目: 初期化する先頭番地(バッファのポインタになると思います。)~ 2つ目: 初期化する値~ 3つ目: 初期化するサイズ * memsetを使用したC言語サンプルコード [#x5bb3e92] 以下にmemsetを使用して初期化前、0で初期化後、123で初期化後の実行例を記します。 &ref(memset.c); (改行コードLF) #include <stdio.h> #include <string.h> struct INT_MEMBERS { int a; int b; int c; }; int main(void) { struct INT_MEMBERS int_members; printf("int_members.a = %d\n", int_members.a); printf("int_members.b = %d\n", int_members.b); printf("int_members.c = %d\n", int_members.c); printf("memset(&int_members, 0, sizeof(int_members))\n"); memset(&int_members, 0, sizeof(int_members)); printf("int_members.a = %d\n", int_members.a); printf("int_members.b = %d\n", int_members.b); printf("int_members.c = %d\n", int_members.c); printf("memset(&int_members, 123, sizeof(int_members))\n"); memset(&int_members, 123, sizeof(int_members)); printf("int_members.a = %d\n", int_members.a); printf("int_members.b = %d\n", int_members.b); printf("int_members.c = %d\n", int_members.c); return 0; } 以下に上記のC言語サンプルコードをコンパイルし実行した時の出力を記します。 $ gcc memset.c -o memset $ ./memset int_members.a = -1216453232 int_members.b = 134514091 int_members.c = -1216614412 memset(&int_members, 0, sizeof(int_members)) int_members.a = 0 int_members.b = 0 int_members.c = 0 memset(&int_members, 123, sizeof(int_members)) int_members.a = 2071690107 int_members.b = 2071690107 int_members.c = 2071690107 初期化した値の0になっていることが確認できます。~ しかし、123で初期化した値は期待した123になっていません。~ これはバイト単位で123という値がセットされるためです。~ 使用するときは注意しましょう。 以上、memsetのC言語サンプルコードと実行例でした。 #htmlinsertpcsp(c-btm.html,c-sp.html)
タイムスタンプを変更しない
#navi(../) * メモリの内容を指定した値で初期化する・memset [#o9589825] 指定したメモリ番地から指定したサイズ分を指定した値で初期化するmemset関数のC言語サンプルソースを以下に記します。 #contents #htmlinsertpcsp(c-top.html,c-sp.html) *関連記事 [#l8b52abc] -[[メモリの内容を指定した値で初期化する・memset>メモリ/メモリの内容を指定した値で初期化する・memset]] -[[メモリ内容をコピーする・memcpy>メモリ/メモリ内容をコピーする・memcpy]] -[[構造体の内容をコピーする・memcpyは使わない!>メモリ/構造体の内容をコピーする・memcpyは使わない!]] -[[メモリの比較を行う・memcmp>メモリ/メモリの比較を行う・memcmp]] -[[動的にメモリを取得する・malloc>メモリ/動的にメモリを取得する・malloc]] -[[動的メモリサイズを拡張する・realloc>メモリ/動的メモリサイズを拡張する・realloc]] -[[malloc,calloc,reallocで取得したメモリを解放する・free>メモリ/malloc,calloc,reallocで取得したメモリを解放する・free]] -[[指定した文字数分コピーする・memmove>メモリ/指定した文字数分コピーする・memmove]] -[[指定したバイトの指定個数分メモリを確保する・calloc>メモリ/指定したバイトの指定個数分メモリを確保する・calloc]] * memsetの書式等 [#uea32945] -必要なインクルードファイル #include <string.h> -memsetの書式 void *memset(void *s, int c, size_t n); -戻り値~ なし -引数~ 1つ目: 初期化する先頭番地(バッファのポインタになると思います。)~ 2つ目: 初期化する値~ 3つ目: 初期化するサイズ * memsetを使用したC言語サンプルコード [#x5bb3e92] 以下にmemsetを使用して初期化前、0で初期化後、123で初期化後の実行例を記します。 &ref(memset.c); (改行コードLF) #include <stdio.h> #include <string.h> struct INT_MEMBERS { int a; int b; int c; }; int main(void) { struct INT_MEMBERS int_members; printf("int_members.a = %d\n", int_members.a); printf("int_members.b = %d\n", int_members.b); printf("int_members.c = %d\n", int_members.c); printf("memset(&int_members, 0, sizeof(int_members))\n"); memset(&int_members, 0, sizeof(int_members)); printf("int_members.a = %d\n", int_members.a); printf("int_members.b = %d\n", int_members.b); printf("int_members.c = %d\n", int_members.c); printf("memset(&int_members, 123, sizeof(int_members))\n"); memset(&int_members, 123, sizeof(int_members)); printf("int_members.a = %d\n", int_members.a); printf("int_members.b = %d\n", int_members.b); printf("int_members.c = %d\n", int_members.c); return 0; } 以下に上記のC言語サンプルコードをコンパイルし実行した時の出力を記します。 $ gcc memset.c -o memset $ ./memset int_members.a = -1216453232 int_members.b = 134514091 int_members.c = -1216614412 memset(&int_members, 0, sizeof(int_members)) int_members.a = 0 int_members.b = 0 int_members.c = 0 memset(&int_members, 123, sizeof(int_members)) int_members.a = 2071690107 int_members.b = 2071690107 int_members.c = 2071690107 初期化した値の0になっていることが確認できます。~ しかし、123で初期化した値は期待した123になっていません。~ これはバイト単位で123という値がセットされるためです。~ 使用するときは注意しましょう。 以上、memsetのC言語サンプルコードと実行例でした。 #htmlinsertpcsp(c-btm.html,c-sp.html)
テキスト整形のルールを表示する
添付ファイル:
memset.c
663件
[
詳細
]