#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)