C中memcpy函數用法

一、函數原型數組

void *memcpy(void *destin,void *source,unsigned n);函數

其中,spa

  • destin表明用於存儲複製內容的目標數組,類型強制轉換爲void*指針。
  • source表示指向要複製的數據源,類型`強制轉換爲void*指針。
  • n表示要被複制的字節數

該函數返回一個指向目標存儲區destin的指針。若是destin存在數據,將會被覆蓋。該函數存在與頭文件string.h中。指針

二、實現的功能code

從source所指的內存地址的起始位置開始拷貝n個字節到目標destin所指的內存地址的起始位置中。blog

三、memcpy與strcpy區別:內存

  • strcpy只能複製字符串,而memcpy能夠複製任意內容,如:字符數組、整形、結構體、類等
  • strcpy不須要指定長度,它遇到被複制字符的串結束符「\0」才結束,因此容易溢出。memcpy則根據第三個參數決定複製的長度。
  • 一般在複製字符串時用strcpy,而須要複製其餘類型數據時則通常用memcpy。

四、程序案例:字符串

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 9
int main()
{

        char* a=(char*)malloc(sizeof(char)*N);
        char* b="Who are you?";
        memcpy(a,b,N);
        printf("%s\n",a);

        return 0;
}

運行結果:原型

Who are y

string

相關文章
相關標籤/搜索