#navi(../)
* 指定した文字数分コピーする・memmove [#rcbbe051]
memcpyなどを使用して同様のことを実現することもできますが、本資料ではmemmoveを使用した記事です。~
以下にmemmoveを使用したC言語サンプルソースを記します。

#contents
#htmlinsertpcsp(c-top.html,c-sp.html)

* 関連記事 [#gc9c8f2b]
-[[メモリの内容を指定した値で初期化する・memset>メモリ/メモリの内容を指定した値で初期化する・memset]]
-[[メモリ内容をコピーする・memcpy>メモリ/メモリ内容をコピーする・memcpy]]
-[[構造体の内容をコピーする・memcpyは使わない!>メモリ/構造体の内容をコピーする・memcpyは使わない!]]
-[[メモリの比較を行う・memcmp>メモリ/メモリの比較を行う・memcmp]]
-[[動的にメモリを取得する・malloc>メモリ/動的にメモリを取得する・malloc]]
-[[動的メモリサイズを拡張する・realloc>メモリ/動的メモリサイズを拡張する・realloc]]
-[[malloc,calloc,reallocで取得したメモリを解放する・free>メモリ/malloc,calloc,reallocで取得したメモリを解放する・free]]
-[[指定した文字数分コピーする・memmove>メモリ/指定した文字数分コピーする・memmove]]
-[[指定したバイトの指定個数分メモリを確保する・calloc>メモリ/指定したバイトの指定個数分メモリを確保する・calloc]]

* memmove関数の書式など [#kc896c94]
以下にmemmove関数の書式等を記します。
-必要なインクルード
 #include <string.h>
-書式
 void *memmove(void *dest, const void *src, size_t n);
-引数~
1つ目: コピー先
2つめ: コピー元
3つ目: コピーする数
-戻り値~
なし

* memmoveを使用したサンプルソース [#eed3be23]
以下にmemmoveを使用したC言語サンプルソースを記します。
&ref(memmove.c); (改行コードLF)
 #include <stdio.h>
 #include <string.h>
 
 #define BUFSIZE 10
 
 int main(void)
 {
     int i;
     char src1[] = { "0123456789" };
     char src2[] = { "0123456789" };
     char *dest ="dest";
 
     memmove(&src1[0], &src1[5], 5);
     printf("%s\n", src1);
 
     memmove(src2, dest, strlen(dest));
     printf("%s\n", src2);
 
     return 0;
 }


以下にコンパイルし実行した結果を記します。
 $ gcc memmove.c -o memmove
 $ ./memmove 
 5678956789
 dest456789

以上、memmoveのサンプルソースでした。

#htmlinsertpcsp(c-btm.html,c-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS