C言語 バッファのコピー - string.h - [ memcpy ]

2008.11.24 Monday | by LRESULT


ッファのコピーをするには、memcpy()を使います。

結構メジャーな関数で、なにかと使うことになると思います。
コピーするサイズは気をつけないと、メモリ破壊を起こすので注意が必要です。


memcpy
書式 void* memcpy( void *s1, const void *s2, size_t n )
機能 バッファのコピー
引数 void *s1 : コピー先となるバッファ
const void *s2 : コピー元となるバッファ
size_t n : コピーするバイト数
戻り値 コピー先バッファ(s1)を返します。

strncpy()と似てますが、「¥0」は追加されません。





サンプルコード
int型配列「1,2,3,4,5,6,7,8,9」内の最初の3要素を
コピーして表示してみます。
#include <stdio.h>
#include <string.h>

int main(void)
{
  int s1[3];
  int s2[] = {1,2,3,4,5,6,7,8,9};

  memcpy( s1, s2, sizeof(int) * 3 );
  printf( "%d, %d, %d¥n", s1[0], s1[1], s1[2] );

  return 0;
}



結果
1, 2, 3
と、表示されます。

ちゃんとコピー出来てますね。
ちなみに、int型配列なので、コピーするには
sizeof()でバイト数を取得する必要があります。

カテゴリ:C言語 string.h | 23:30 | comments(0) | trackbacks(0) | -


コメントする











この記事のトラックバックURL

トラックバック機能は終了しました。

トラックバック