機能 |
データを指定サイズ分だけコピーする。 ただし、コピー元とコピー先の領域が重なっている場合の動作は不定。 重なっている場合は、memmove関数を用いること。 |
||||||
---|---|---|---|---|---|---|---|
定義 |
#include <string.h> void * memcpy ( void * s1, const void * s2, size_t n ); ※C99規格では以下の定義となる void * memcpy ( void * restrict s1, const void * restrict s2, size_t n ); |
||||||
引数 |
|
||||||
戻り値 | 引数s1を返す。 | ||||||
実装例 |
#include <string.h> #include <stdio.h> struct S { int a; char b; }; int main(void) { struct S in = {10, 'a'}; struct S out; memcpy(&out, &in, sizeof(struct S)); printf("%d %c\n", out.a, out.b); return 0; } |
||||||
実行結果 |
10 a |
memcpy()