1. memcpy()の概要
1.1関数プロトタイプ
void *memcpy(void *destin, void *source, unsigned n);
1.2パラメータ
- destinは、コピーされたコンテンツを格納するために使用されるターゲット配列を指し、型はvoid *ポインターにキャストされます。
- ソースデータソースへのポイント超をコピーすると、型がvoid *型のポインタにキャストされます。
- n-コピーされるバイト数。
1.3機能
ソースソースが指すメモリアドレスの開始位置からターゲットデスティンが指すメモリアドレスの開始位置にnバイトをコピーします。
1.4ヘッダーファイル
#include <string.h>
1.5戻り値
この関数は、ターゲットストレージ領域の宛先へのポインタを返します。
2. Memcpy()の使用法
ターゲット配列destin自体にデータがある場合、memcpy()を実行した後、元のデータが上書きされます(最大n)。データを追加する場合は、memcpyを実行するたびに、ターゲット配列のアドレスをデータを追加するアドレスに増やす必要があります。
具体的なコードは次のとおりです。
#include <stdio.h>
#include <string.h>
int main(void)
{
char data[7]="memcpy";
printf("%s\n",data);
char cdata[20]={
0};
memcpy(cdata,data,6);
printf("%s\n",cdata);
memcpy(cdata,"123456",6);
printf("%s\n",cdata);
memcpy(&cdata[6],"78910",6); //追加数据
printf("%s\n",cdata);
return 0;
}
実行結果は次のとおりです。
memcpy
memcpy
123456
12345678910