#navi(../)
* メモリ内容をコピーする・memcpy [#d8ce57e8]
元データとなる指定したメモリ番地からコピー先の指定したメモリ番地へ内容をコピーするmemcpy関数のC言語サンプルソースを以下に記します。

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

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

* memcpyの書式等 [#q3c46e3e]
-必要なインクルードファイル
 #include <string.h>
-memsetの書式
 void *memcpy(void *dest, const void *src, size_t n);
-戻り値~
なし
-引数~
1つ目: コピー先の番地(バッファのポインタになると思います。)~
2つ目: コピー元の番地~
3つ目: コピーするサイズ

* memcpyを使用したC言語サンプルコード [#mb357936]
以下にmemcpyを使用してバッファの複製を作るC言語サンプルコードと実行例を記します。
&ref(memcpy.c); (改行コードLF)
 #include <stdio.h>
 #include <string.h>
 
 #define BUFSIZE 10
 
 int main(void)
 {
     int i;
     char src[10];
     char dest[10];
 
     for(i=0; i<BUFSIZE; i++) {
         src[i] = i;
     }
    
     memcpy(dest, src, BUFSIZE);
 
     for(i=0; i<BUFSIZE; i++) {
         printf("src[%d] = %d, dest[%d] = %d \n", i, src[i], i, dest[i]);
     }
 
     return 0;
 }

上記のmemcpyサンプルコードのコンパイルと実行結果を記します。
 $ gcc memcpy.c -o memcpy
 $ ./memcpy 
 src[0] = 0, dest[0] = 0 
 src[1] = 1, dest[1] = 1 
 src[2] = 2, dest[2] = 2 
 src[3] = 3, dest[3] = 3 
 src[4] = 4, dest[4] = 4 
 src[5] = 5, dest[5] = 5 
 src[6] = 6, dest[6] = 6 
 src[7] = 7, dest[7] = 7 
 src[8] = 8, dest[8] = 8 
 src[9] = 9, dest[9] = 9 


以上、memcpyのC言語サンプルコードと実行例でした。

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

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