C語言:memcpy() 用法詳解
阿新 • • 發佈:2020-12-11
1、memcpy() 簡介
1.1 函式原型
void *memcpy(void *destin, void *source, unsigned n);
1.2 引數
- destin– 指向用於儲存複製內容的目標陣列,型別強制轉換為 void* 指標。
- source– 指向要複製的資料來源,型別強制轉換為 void* 指標。
- n– 要被複制的位元組數。
1.3 功能
從源source所指的記憶體地址的起始位置開始拷貝n個位元組到目標destin所指的記憶體地址的起始位置中。
1.4 標頭檔案
#include<string.h>
1.5 返回值
該函式返回一個指向目標儲存區destin的指標。
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