メモリ/メモリの内容を指定した値で初期化する・memset
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* メモリの内容を指定した値で初期化する・memset [#o9589825]
指定したメモリ番地から指定したサイズ分を指定した値で初期...
#contents
#htmlinsertpcsp(c-top.html,c-sp.html)
*関連記事 [#l8b52abc]
-[[メモリの内容を指定した値で初期化する・memset>メモリ/メ...
-[[メモリ内容をコピーする・memcpy>メモリ/メモリ内容をコピ...
-[[構造体の内容をコピーする・memcpyは使わない!>メモリ/構...
-[[メモリの比較を行う・memcmp>メモリ/メモリの比較を行う・...
-[[動的にメモリを取得する・malloc>メモリ/動的にメモリを取...
-[[動的メモリサイズを拡張する・realloc>メモリ/動的メモリ...
-[[malloc,calloc,reallocで取得したメモリを解放する・free>...
-[[指定した文字数分コピーする・memmove>メモリ/指定した文...
-[[指定したバイトの指定個数分メモリを確保する・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))...
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...
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]
指定したメモリ番地から指定したサイズ分を指定した値で初期...
#contents
#htmlinsertpcsp(c-top.html,c-sp.html)
*関連記事 [#l8b52abc]
-[[メモリの内容を指定した値で初期化する・memset>メモリ/メ...
-[[メモリ内容をコピーする・memcpy>メモリ/メモリ内容をコピ...
-[[構造体の内容をコピーする・memcpyは使わない!>メモリ/構...
-[[メモリの比較を行う・memcmp>メモリ/メモリの比較を行う・...
-[[動的にメモリを取得する・malloc>メモリ/動的にメモリを取...
-[[動的メモリサイズを拡張する・realloc>メモリ/動的メモリ...
-[[malloc,calloc,reallocで取得したメモリを解放する・free>...
-[[指定した文字数分コピーする・memmove>メモリ/指定した文...
-[[指定したバイトの指定個数分メモリを確保する・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))...
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...
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)
ページ名: